使用 Google Identity Platform 和自定义 Node.js 后端进行电子邮件/密码移动授权

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

我有一个 Flutter 移动应用程序和 Node.js 后端。我希望用户能够进行身份验证 使用 Google Identity Platform 并在我的 Node.js 后端端点上授权它们。用户将具有不同的角色,需要检查。

我不想使用 Firebase & 最好自己处理尽可能少的身份验证逻辑。

我的问题是: 可以从我的后端调用 Identity Platform API 并在我自己的服务器上生成 JWT 访问令牌还是有更好的方法?我还担心速率限制可能会导致从后端调用 API 时出现问题。 (如果可以从前端调用它们的话)。

我也将不胜感激任何文章和其他资源来安全地完成此类事情。

node.js authentication security google-cloud-platform google-identity-toolkit
1个回答
0
投票

我建议您使用 Google Identity Platform(通过 OAuth 2.0)对用户进行身份验证,但您不应该直接从后端调用 Google 的 Identity Platform API 来生成 JWT 令牌。

以下是推荐的方法:

  • 使用 Flutter App 作为前端,通过 Google 的 OAuth 2.0 API 处理初始身份验证流程(通过 Flutter 中的 google_sign_in 包)。成功登录后,应用程序会收到来自 Google 的 ID 令牌。

  • 当 ID 令牌发送到后端时,后端使用 Google 的公钥验证此令牌以确保其真实性。然后,后端将角色分配给用户(从您的数据库)并生成自己的 JWT(会话令牌),以进一步保护来自前端的请求。

这里有一些有用的链接:

  1. Node.js 的 google-auth-library

  2. Google OAuth2.0 文档

  3. 基于角色的访问控制

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