是否可以在 Amazon Cognito 中没有托管 UI 的情况下进行社交登录?

问题描述 投票:0回答:2

我试图了解 Amazon Cognito 是否可以满足我们的需求,这似乎是一项不错的服务,但我找不到任何文档来解释如何在不使用本机移动应用程序上的用户池托管 UI 的情况下实现身份验证流程。现在我们可以通过电子邮件/密码做到这一点,但我们无法通过 Facebook 社交登录做到这一点。

所以我的问题是:我们使用 Facebook SDK 来获取用户的 Facebook 访问令牌,然后呢?我可以在不使用托管 UI 的情况下接收认知授权代码吗?怎么办?

谢谢。

ios amazon-cognito
2个回答
4
投票

您可以通过重定向到此直接向联合应用程序进行身份验证,

https://' + domain + '/authorize?identity_provider=' + provider + '&response_type=' + type + '&client_id=' + clientId + '&redirect_uri=' + callback + '&state=' + '&scope=' + scope

这是我在 VueJS 应用程序中遵循的示例。 https://github.com/PaulMaddox/aws-vuejs-cognito/blob/master/src/services/auth.js#L19

不知道如何在 iOS 中执行相同的操作。


0
投票

为了从本机移动应用程序成功执行授权代码流,您必须生成 Cognito 域并使用 Cognito SDK 或直接调用相关端点(/authorize 和 /token)。

另一种方法是在您的移动应用程序中获取社交登录令牌(您提到的 Facebook 令牌),然后将它们发送到您的后端。您的后端应使用 Cognito 自定义流程对这些令牌进行身份验证,并返回相关用户的令牌。请记住,这是一个自定义实现,因此您可能需要跟踪 Cognito 用户和社交提供商 ID 之间的链接。

此方法不涉及授权码流交换,因此您应该评估它是否符合您的安全标准。

您可以在 AWS 文档中找到有关自定义流程的更多信息 https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html

© www.soinside.com 2019 - 2024. All rights reserved.