服务器端 id_token 与 Auth_0

Serverside id_token with Auth_0

我对使用基于令牌的身份验证时在服务器端处理用户信息的方式有些困惑。

我正在使用 ReactFlask 构建一个 RESTful 单页应用程序,我想使用作为 Auth0 的身份验证提供程序。

在我看来,这是用户的工作流程:

  1. 在客户端输入邮箱+密码
  2. Auth0 确认了这一点并且 returns 存储在 localStorage
  3. 中的 jwt
  4. 当用户从我的服务器发布或获取数据时,jwt 随请求一起发送
  5. 服务器通过 Auth0 检查此令牌是否有效
  6. 如果此令牌有效,则它会处理用户的请求

我不明白用户的数据如何符合这种模式,例如他们的电子邮件地址用于记录我的数据库中的更改:

感谢您的帮助!

是的,如果您在 Auth0 中为客户端设置了默认设置,则有关用户的信息应该在您的 id_token 中。如果您在 jwt.io 使用 JWT 调试器并将您的 id_token 粘贴到 encoded 部分,右侧将显示您的令牌内容。

这基本上是对令牌进行解码。您必须在应用程序中执行相同的操作才能使用用户名、电子邮件、email_verified、...

常见的做法是在用户登录时(在前端)对令牌进行一次解码。将此信息存储在全局变量中,以便在整个应用程序中使用。

用于后端(Python),简单解码使用pyjwt

解码令牌

您可能希望使用 jsonwebtoken 库来处理前端解码。