gpt4 book ai didi

amazon-web-services - 将外部身份提供者与服务器端身份验证结合使用

转载 作者:IT王子 更新时间:2023-10-29 01:09:01 28 4
gpt4 key购买 nike

我正在使用适用于 Go 的 AWS 开发工具包来使用 Cognito 进行服务器端身份验证。我已经完成注册和登录并使用用户名和密码工作。我根据 documentation 配置了所有三个外部身份提供者。以及重定向 URL 和文档要求的所有其他内容。

我知道如何获取 Cognito 将为您构建的已构建注册/登录页面的 URL,并且这些页面具有 Google/Facebook/Amazon 登录按钮,但我需要能够将这些按钮放在我网站的前端。我不知道该怎么做。

编辑:请参阅@Stu 帖子上的评论,了解为什么将 JS SDK 答案标记为正确答案的详细推理。这可能会发生变化,但暂时不会。 (tldr;aws go sdk 和 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());
});
}

其他 Facebook SDK 信息: https://developers.facebook.com/docs/facebook-login/web

因为您将完成在您的应用程序中设置 Cognito 流程的 Action 。还有一点,我强烈建议您继续使用 lambda 触发器设置自定义消息。 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 可能是最简单的,但在我看来,这是将 Web 应用程序与 Cognito 集成的解决方案。您可以清楚地处理所有身份验证流程、 token 管理、创建 api 以登录、注销等。使用 GO SDK 在服务器端

关于amazon-web-services - 将外部身份提供者与服务器端身份验证结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618376/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com