最近、自社で作って運用しているサービスのログインに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&param=パラメーター

callbackなURLやパラメーターはEscapeしてください。

・返却

GET CallbackなURL&result=OK&id=123456&name=姓名&param=パラメーター

result :OKまたはNG
id   :ユーザーID
name :familyName + givenName
mail    :メールアドレス

param:呼び出し時に設定された内容がそのまま

2)LINE認証

・呼び出し方法

GET https://ku-match.com/sns/line?cb=callbackなURL&param=パラメーター

callbackなURLやパラメーターはEscapeしてください。

・返却

GET CallbackなURL&result=OK&userId=123456&displayName=姓名&picturl=写真URL&param=パラメーター

result            :現在はOKのみ
userId      :ユーザーID
displayName:姓名
picturl           :写真のURL

param          :呼び出し時に設定された内容がそのまま

※注意

callbackなURLですが、返却するパラメーターは&からスタートしています。

そのため、callbackなURLは?な項目を付けてください。

例)https://hoge.jp?xx=dummy

これからは???

せっかくPassport使ってるので、twitterやInstagramなんかも実装していきたいでし。

今のところ利用に制限は設けていませんので、使えるものなら使ってくださいませ(^^)