私は Satellizer を使用して Facebook ログインを行っています。Facebook がすべてのユーザー情報を返さないことを除けば、うまく機能します。スコープ email と public_profile に含めると、名前と ID だけが取得されますが、メールは取得されません。
これがクライアント側の FB 構成です。ご覧のとおり、email と public_profile を要求しています。
facebook: {
clientId: 'xxxxxxx',
url: '/api/public/authentication/facebook',
authorizationEndpoint: 'https://www.facebook.com/v2.3/dialog/oauth',
redirectUri: window.location.protocol + '//' + window.location.host + '/', // window.location.origin || window.location.protocol + '//' + window.location.host + '/'
scope: 'email,public_profile',
scopeDelimiter: ',',
requiredUrlParams: ['display', 'scope'],
display: 'popup',
type: '2.0',
popupOptions: { width: 481, height: 269 }
},
サーバー上で、これは:
request.get( { url: graphApiUrl, qs: accessToken, json: true }, function( err, response, profile ) { ....
次のように、プロファイルに id と name のみを指定します。
profile = Object {name: Denis, id: xxx}
何が間違っているのか、なぜメールやアバターが届かないのかわかりません...
ありがとう。