ソーシャルログインのウェブAPI化をしてみた
最近、自社で作って運用しているサービスのログインにFacebookとLINEログインを利用しています。
で、いちいち実装するのってめんどいなぁと。
ライブラリにしちゃっても、なんかあったら全部対応しなきゃいけない!
てなわけで、Webサービスとして実装しました。
今回は、FacebookとLINE。
パスポートでめげました。。。
普段、Node.js使ってるんでPassport使ってちゃっちゃと!って下心してたんですが。。。見事にハマりました!
ハマった点、
その1:facebookでuser_idとしてPassportからかってくる値が /me で帰ってくる値と違ってる。
調べてみると、アプリケーションIDごとに異なるようなんです。
でも、その値で、graphAPIで写真なんかは表示することができる。
どんなふうに管理がされてるんでしょうかね??
んで、仕方ないので、取得したトークン使って/meにアクセスしてみたら、、やっぱりuser_idはそのまんま。。
あきらめて、そのまんま使うことにしました(^^)
おかしくはないんですから。。(^^;
その2:LINEがPassportでうまくいかない
passport-lineってのがあったので、使ってみたんですが、どうしても動かない!
passport-line-v2ってのがあったり、いくつかモジュールがあったので試してみたんですが、どうしても動かせない。。。orz
しかたないので、ゴテゴテとスクラッチで実装しましたさ(^^;
どんなふうに使うのか????
1)Facebook認証
・呼び出し方法
GET https://ku-match.com/sns/fb?cb=callbackなURL¶m=パラメーター
callbackなURLやパラメーターはEscapeしてください。
・返却
GET CallbackなURL&result=OK&id=123456&name=姓名¶m=パラメーター
result :OKまたはNG
id :ユーザーID
name :familyName + givenName
mail :メールアドレス
param:呼び出し時に設定された内容がそのまま
2)LINE認証
・呼び出し方法
GET https://ku-match.com/sns/line?cb=callbackなURL¶m=パラメーター
callbackなURLやパラメーターはEscapeしてください。
・返却
GET CallbackなURL&result=OK&userId=123456&displayName=姓名&picturl=写真URL¶m=パラメーター
result :現在はOKのみ
userId :ユーザーID
displayName:姓名
picturl :写真のURL
param :呼び出し時に設定された内容がそのまま
※注意
callbackなURLですが、返却するパラメーターは&からスタートしています。
そのため、callbackなURLは?な項目を付けてください。
例)https://hoge.jp?xx=dummy
これからは???
せっかくPassport使ってるので、twitterやInstagramなんかも実装していきたいでし。
今のところ利用に制限は設けていませんので、使えるものなら使ってくださいませ(^^)