私はSPAチュートリアルのpragprogに従っています。この例ではgoogle +を使用してアマゾンのcognitoにトークンを保存しています。 googleにログインしてcognitoに登録する。ウェブページからamazon cognitoにFacebookのアクセストークンを登録してください
Facebookアプリケーションで提供されているアクセストークンをcognitoで登録すると、期待どおりに動作しません。私はFBでWebアプリケーションを登録し、提供されたアプリIDを使用しています。 FBへのログインはOKで、アクセストークンを取得します。
HTML:
<div class="fb-login-button" ... onlogin="checkFacebookStatus()"></div>
<script>
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/nn_NO/sdk.js', function() {
FB.init({
appId : 'my app id',
xfbml : true,
version : 'v2.6'
});
$('#fb-login-button').removeAttr('disabled');
checkFacebookStatus();
});
});
</script>
JS:
function checkFacebookStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var accessToken = response.authResponse.accessToken;
facebookSignIn(accessToken);
}
});
}
function facebookSignIn(accessToken) {
AWS.config.update({
region: 'eu-west-1',
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: learnjs.poolId,
Logins: {
'graph.facebook.com': accessToken
}
})
})
}
私はAmazon Cognitoで認証プロバイダでFBアプリIDを登録しています。コンソールに出力すると、私の名前、メール、トークンが表示されます。私はhttps://localhostの自己署名証明書でそれを実行するので、wiresharkは暗号化された通信を示します。 httpとhttpsが混在していると、FBへのログインは失敗します。