我正在创建一个认知用户池,其中用户电话号码作为唯一密钥。我想集成 Steam 社交登录来记录用户的 steam ID。问题是 AWS Cognito 支持 OpenID 连接,而 Steam 仅提供 OpenID 2.0(已弃用的标准)。
有人成功地将两者整合在一起吗?如果不是,那么应该采用什么方法?
用例要求用户仅存储自己的 Steam ID。直接通过文本字段接受 Steam ID 可能会被滥用。
我正在学习 Cognito 并发现了这个问题,好吧,我不会很快尝试这个,但我正在考虑 Cognito 的灵活性,然后我问 chatgpt“你知道 aws cognito 服务是否支持 Steam 社交登录吗?”这就是他的答案...
PS:希望对任何人都有用/帮助。
截至 2023 年 5 月我的最后一次更新,AWS Cognito 本身并不支持 Steam 作为社交身份提供商。 AWS Cognito 本身支持多个开箱即用的社交身份提供商,包括:Amazon; Facebook;谷歌;苹果
但是,您仍然可以通过实施自定义身份验证流程,使用 AWS Cognito 将 Steam 集成为身份提供商。以下是如何实现这一目标的总体概述:
将 Steam 社交登录与 AWS Cognito 集成的步骤:
在 Steam 上注册您的应用程序以获取 API 密钥。该密钥将用于对 Steam 用户进行身份验证。
设置处理 Steam 身份验证流程的自定义后端服务(使用 AWS Lambda、API Gateway 或任何其他后端服务)。该服务将与 Steam API 交互以验证用户身份并获取他们的 Steam 身份信息。
实施 OAuth 2.0 流程以通过 Steam 对用户进行身份验证。这涉及将用户重定向到 Steam 登录页面,他们可以在其中使用其 Steam 凭据登录。身份验证成功后,Steam 将使用授权码将用户重定向回您的后端服务。
使用授权码从Steam获取访问令牌。使用此访问令牌,调用 Steam 的 API 来获取用户的 Steam ID 和其他相关信息。
获得用户的 Steam 身份信息后,请使用 AWS Cognito Admin API 在 Cognito 用户池中创建或更新用户。然后,您可以生成 Cognito 令牌(ID 令牌、访问令牌和刷新令牌)并将其返回给用户。
使用 AWS Cognito 的自定义身份提供商功能将 Steam 账户与 Cognito 用户关联。这涉及在 Cognito 用户池中创建自定义身份提供商并配置后端服务来处理令牌交换和用户管理。
示例工作流程:
注意事项:
通过执行以下步骤,您可以将 Steam 作为社交登录提供商与 AWS Cognito 集成,从而使用户能够使用其 Steam 帐户进行身份验证。