使用Auth_0的Serverside id_token

时间:2017-12-04 09:48:41

标签: reactjs flask jwt single-page-application auth0

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

我正在使用 React Flask 构建RESTful单页应用,我想将身份验证提供程序用作Auth0。

我看到它的方式,这是用户的工作流程:

  1. 在客户端输入电子邮件+密码
  2. Auth0确认此消息并返回jwt
  3. 中存储的localStorage
  4. 当用户从我的服务器发布或获取数据时,jwt将沿请求
  5. 发送
  6. 服务器使用Auth0检查此令牌是否有效
  7. 如果此令牌有效,则会处理用户的请求
  8. 我没有得到的是用户的数据如何适合这种模式,例如他们的电子邮件地址记录我的数据库中的更改:

    • 是否在步骤2(id_token?)返回并且应该在步骤3中作为声明传递?
    • 或者,当服务器检查收到的令牌时,是否应该在步骤4中获取它?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

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

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

要在后端(Python)中使用,使用pyjwt

对令牌进行简单的解码解码

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