コマーシャルネタですが、ソーシャルログインなるものを導入するべくひとつずつ確認して行ってます。
Facebookやtwitterは以前組んだことがあるんだけど、日が空くとAPIも変わってるしなかなか一筋縄ではいかない。
今日はGoogleのoauthをとやってみようと試しておりました。
Googleなんでググったらいくらでも情報は出てくると思っていたけど、ネットですぐに出てくる物は2023年1月で終了するとかconsole.logに警告が出てくる。
新しいAPIに付いてはひとつだけ参考になりそうなサイトはあるもののサーバーサイドではPHP対応でない。
なんとかなるやろと組んでみるが、ログイン後にgoogoleからリダイレクトされるURLに渡ってくるパラメータが想定とは違ってる。
id_tokenってパラメータが返ってくるはずはそんなものは無い。
結局 credential ってパラメータに何か返ってくることが分かったけど、その値がよくわからん。
色々ググってみるとJWT(JSON Web Tokens)ってフォーマットで何か入っているらしい。
BASE64でなっているのでBASE64でデコードしても暗号化形式とかしかうまく解読できない。
そもそもJWTとはって、所から調べると「.」ピリオドで三分割されたJSONらしい。
ほんでもって「.」で分割してみてそれぞれをBASE64でdecodeすると出てきました。
2番目の項目がgoogleでログインに成功した後のprofile情報です。
ヤレヤレです。
とりあえず、Facebook、インスタ、Googleが出来たんだけど、あとはLINE、twitter、yahooの3つは実装したい。
他の仕事もあるので、1種類2日ペースでしか進まず試行錯誤するのでとっても疲れる。
ま、おしごとなんで頑張るけどね。
コメントする