2016/02/02

passport-facebook 完全に罠だわなこれ


nodejs + passport-facebook で簡単ログイン機能を作成しようと思って

email 情報欲しいなぁ(´а`)

なんて思いながら scope を設定したものの・・・

全然取れないしorz

でも email 以外の profile 情報は取れてるっぽいし・・・

なんだこれっ!



ネットで色々調べてみると、facebook 側の仕様変更で fields ってパラメータ増えてるみたいだし、

お、これは解決やねっ♪

って思ってたら・・・

取得値ぜんぜん変わってないしorz

なんだこれはっ!

どうなってるんやっ!!



仕方がないので passport-facebook の中身をしげしげと物色。。。

お、なんかあった!!

# passport-facebook/lib/strategy.js の60行目あたり
→function Strategy(options, verify) {
:
(略)
:
this._profileFields = options.profileFields || null;



ってことで、scope でもなく、fields でも info_fields でもなく、

profileFields にしたところ無事にメールアドレス取得成功!!

(´д`)=3ふぅーっ

ちなみに、passport-facebook のバージョンは 2.0.0



なお、oauth2 や openid では脆弱性が見つかっており、

巷では openid-connect に移行中。

google では既に oauth2 のサポートやめてるのでご注意を!!!


0 件のコメント:

コメントを投稿