使用 Steam 社交登录进行 AWS Cognito 注册

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

使用 AWS Cognito 进行 Steam 社交登录

我正在创建一个认知用户池,其中用户电话号码作为唯一密钥。我想集成 Steam 社交登录来记录用户的 steam ID。问题是 AWS Cognito 支持 OpenID 连接,而 Steam 仅提供 OpenID 2.0(已弃用的标准)。

有人成功地将两者整合在一起吗?如果不是,那么应该采用什么方法?

为什么要使用steam登录?

用例要求用户仅存储自己的 Steam ID。直接通过文本字段接受 Steam ID 可能会被滥用。

参考文献

  1. OpenID 2.0 与 OpenID 连接
  2. Steam OpenID 官方文档
  3. 用于启动 Steam 登录的查询字符串
amazon-web-services amazon-cognito steam steam-web-api
1个回答
0
投票

我正在学习 Cognito 并发现了这个问题,好吧,我不会很快尝试这个,但我正在考虑 Cognito 的灵活性,然后我问 chatgpt“你知道 aws cognito 服务是否支持 Steam 社交登录吗?”这就是他的答案...

PS:希望对任何人都有用/帮助。

截至 2023 年 5 月我的最后一次更新,AWS Cognito 本身并不支持 Steam 作为社交身份提供商。 AWS Cognito 本身支持多个开箱即用的社交身份提供商,包括:Amazon; Facebook;谷歌;苹果

但是,您仍然可以通过实施自定义身份验证流程,使用 AWS Cognito 将 Steam 集成为身份提供商。以下是如何实现这一目标的总体概述:

将 Steam 社交登录与 AWS Cognito 集成的步骤:

  1. 创建 Steam Web API 密钥:

在 Steam 上注册您的应用程序以获取 API 密钥。该密钥将用于对 Steam 用户进行身份验证。

  1. 创建自定义后端端点:

设置处理 Steam 身份验证流程的自定义后端服务(使用 AWS Lambda、API Gateway 或任何其他后端服务)。该服务将与 Steam API 交互以验证用户身份并获取他们的 Steam 身份信息。

  1. 使用 Steam 进行身份验证

实施 OAuth 2.0 流程以通过 Steam 对用户进行身份验证。这涉及将用户重定向到 Steam 登录页面,他们可以在其中使用其 Steam 凭据登录。身份验证成功后,Steam 将使用授权码将用户重定向回您的后端服务。

  1. 验证 Steam 用户身份:

使用授权码从Steam获取访问令牌。使用此访问令牌,调用 Steam 的 API 来获取用户的 Steam ID 和其他相关信息。

  1. 生成 AWS Cognito 令牌:

获得用户的 Steam 身份信息后,请使用 AWS Cognito Admin API 在 Cognito 用户池中创建或更新用户。然后,您可以生成 Cognito 令牌(ID 令牌、访问令牌和刷新令牌)并将其返回给用户。

  1. 自定义 Cognito 身份提供商

使用 AWS Cognito 的自定义身份提供商功能将 Steam 账户与 Cognito 用户关联。这涉及在 Cognito 用户池中创建自定义身份提供商并配置后端服务来处理令牌交换和用户管理。

示例工作流程

  1. 用户在您的应用程序上单击“使用 Steam 登录”。
  2. 用户被重定向到 Steam 的登录页面。
  3. 成功登录后,Steam 使用授权代码将用户重定向回您的自定义后端端点。
  4. 您的后端服务将授权代码与 Steam 交换访问令牌。
  5. 使用访问令牌,您的后端服务检索用户的 Steam ID 和其他个人资料信息。
  6. 您的后端服务在 Cognito 用户池中创建或更新用户并生成 Cognito 令牌。
  7. 用户将使用 Cognito 令牌重定向回您的应用程序。

注意事项

  • 安全性:确保您的自定义后端服务安全地处理 OAuth 令牌和用户信息。
  • 维护:自定义实现需要维护和更新,以处理 Steam API 或身份验证流程中的任何更改。
  • 用户体验:通过有效处理重定向和令牌交换来确保无缝的用户体验。

通过执行以下步骤,您可以将 Steam 作为社交登录提供商与 AWS Cognito 集成,从而使用户能够使用其 Steam 帐户进行身份验证。

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