【问题标题】:How to get JWT cookie in reactjs which is send by the server如何在服务器发送的reactjs中获取JWT cookie
【发布时间】:2020-02-19 12:17:44
【问题描述】:

我在客户端使用 reactjs。服务器在认证后发送cookie。

所以我的问题是如何在服务器发送的 react-js 中获取 JWT cookie 以及如何代表这个 cookie 管理令牌

【问题讨论】:

  • 您可以使用document.cookie 获取cookie 并从那里开始。您需要一个 JWT 库来解析令牌以获取其中的信息。您将无法验证令牌在前端是否有效,但这应该没问题,具体取决于您的用例;这是一个用于在前端解码 JWT 令牌的库:github.com/auth0/jwt-decode
  • 需要检查cookie是否为httpOnly,如果是,则客户端无法访问cookie。
  • @kraf,为了首先解码它,我需要获取 cookie。我不想解码cookie。而document.cookie 什么也没返回。
  • @HarryChang,那么我该如何设置用户已登录并设置了它的令牌。

标签: reactjs react-redux jwt setcookie jwt-auth


【解决方案1】:

通常情况下,客户端会有一个API来获取当前用户的数据,例如,向/api/me发送GET请求以获取用户数据{ username: 'harry830622', /* email, gender, etc. */ }

在您的场景中,JWT 在 cookie 中,因此它会在浏览器发出的每个请求中自动发送到服务器。 服务端收到请求后,会先验证cookie中的JWT,如果JWT正确,则返回数据,否则,抛出401 UNAUTHORIZED的错误。

因此,要检查用户是否登录,只需向 API 发送 GET 请求,以查看响应是否包含有效数据。

【讨论】:

  • 我会试试你的解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
  • 2016-10-15
  • 2020-12-14
  • 2017-01-02
相关资源
最近更新 更多