Требования к вашему приложению выросли за пределы использования потока входа Cognito для резака печенья.
Я предлагаю вам просто обработать все ваши аутентификации для Cognito, как показано здесь: https://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html
Таким образом, вы можете добавить кнопку входа в Facebook на вашем сайте следующим образом: https://docs.aws.amazon.com/cognito/latest/developerguide/facebook.html
FB.login(function (response) {
// Check if the user logged in successfully.
if (response.authResponse) {
console.log('You are now logged in.');
// Add the Facebook access token to the Cognito credentials login map.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'IDENTITY_POOL_ID',
Logins: {
'graph.facebook.com': response.authResponse.accessToken
}
});
// Obtain AWS credentials
AWS.config.credentials.get(function(){
// Access AWS resources here.
});
} else {
console.log('There was a problem logging you in.');
}
});
Затем получите пользователя следующим образом:
var data = { UserPoolId : 'us-east-1_Iqc12345',
ClientId : '12345du353sm7khjj1q'
};
var userPool = new AmazonCognitoIdentity.CognitoUserPool(data);
var cognitoUser = userPool.getCurrentUser();
if (cognitoUser != null) {
cognitoUser.getSession(function(err, session) {
if (err) {
alert(err);
return;
}
console.log('session validity: ' + session.isValid());
});
}
Дополнительная информация о SDK Facebook: https://developers.facebook.com/docs/facebook-login/web
Поскольку вы собираетесь проходить через процессы настройки потока Cognito в вашем приложении.Дополнительный самородок, я настоятельно рекомендую вам продолжить и настроить пользовательские сообщения с лямбда-триггером.https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-message.html
Обновление: возвращаясь к этому еще раз.
https://docs.aws.amazon.com/sdk-for-go/api/service/cognitoidentityprovider/#CognitoIdentityProvider.AdminInitiateAuth
Здесь вы можете увидеть функцию с именем AdminInitiateAuth.Существуют также функции для присоединения пользователей к поставщикам удостоверений.Таким образом, использование JS SDK, пожалуй, самое простое и, на мой взгляд, решение для интеграции веб-приложения с Cognito.Вы можете четко обрабатывать весь ваш процесс аутентификации, управления токенами, создавать API для входа, выхода и т. Д. На стороне сервера с помощью GO SDK