理解できなさすぎてイラついてきたので調べました。
前提
Socialiteを実装する!
的なサンプルを見ると、だいたい何の説明もなしにアクセストークンとやらがDBに保管されています。
保管できるのはわかったけどなんなんだテメーはと言いたくなります。
使い方?
使い方を見ると、『これを渡すとユーザー情報をサクッと取得できるよ!』……という感じに見えます。
トークンからのユーザー詳細情報の取得(OAuth2)
ユーザーへの有効なアクセストークンを事前に取得している場合は、userFromTokenメソッドを用い、詳細を取得できます。
$user = Socialite::driver('github')->userFromToken($token);
混乱
ええ……待って待って……?
まあそりゃ、SNSでログインすると、SNSの情報を抜き出せるのはわかりますよ……?
でも、そこで『簡易的にSNSの情報を取得できるコード』が一緒に渡されるのってなんか意味あるんですか?
ログインすればいいんじゃないの……?
しかもサンプルとかで、それをDBに保存する意味ってあるんですかね。
そのアクセストークンに該当するユーザであることを証明できたなら、そこからアクセストークンを使って何をする必要があるの……?
そんな感じで混乱してます。
意図が全く読み取れません。
こうして整理しつつ書いてるだけでもキレそうになってきます。
心の余裕がほしい。
そもそもを調べる
アクセストークンというものがよくわからないので、一般的にどうやって使われるものなのか知りません。
その辺がわからないから理解できないのかなと思ったので調べてみます。
うーん、読んだ限りでは……そこまで的はずれな理解はしてなさそうなんですが……。
ここまで意味がわからないのはなんででしょう。
そもそも何か見落としが……?
FBの説明見たらなんとなく理解できた
そうこうしつつ、FBのページを見たらなんとなくわかってきました。
ログインして終わり、じゃなくてもっとこうなんかいろいろする(あやふや)場合のパスワード的なものとして利用できるんですね。
というかそのまんま、SocialiteでFB認証するときに渡しているトークンと同じようなものですね。
なるほど。
自分のプロジェクトについては
自前でメアドとか持ちたくないときに使えるかなあ。
くらいしか利用場面がありませんでした。
そして、気付いてしまったんですが、
そもそもアレですね、
普通のシステムはログインをSNSに外注しないですね。
そこだ……ようやく理解できました。
ログインは普通にIDPASSで持ってて、それとは別にSNS連携ができるシステムの場合。
いちいちログインさせなくてもいいように、トークンを保存しておくわけですね。
で、必要ならそれを利用することで情報を取得したり、投稿を代行したりすると。
理解できました。
似たような悩みを抱える人がいるかはわかりませんが。