【问题标题】:What's the use of JWT in Rails + React app for Auth在 Rails + React 应用程序中 JWT 用于 Auth 有什么用
【发布时间】:2020-01-15 00:09:18
【问题描述】:

我不明白 JWT 令牌的使用..
谁能给我解释一下?
因为目前我正在开发一个应用程序(rails + react),我想使用 devise + jwt 进行身份验证并使用 React 进行前端。

其实我是这么理解的:

1/ 如果用户想登录:他完成了表单,React 从表单中获取数据并将这些信息发布到 Rails API 请求。

2/ Rails API 获取这些信息,如果信息与注册用户匹配,则在数据库中检查,如果匹配,则 Rails API 将创建一个 JWT 令牌并将此令牌发送到 React。
用户现在已登录,因为 Rails API 找到了匹配的用户。

3/ React 接收 JWT 令牌。 (??这个令牌的用途是什么??)

谢谢

【问题讨论】:

  • 令牌用于所有连续的 API 调用,并在 HTTP 授权标头中传递它。每次允许 API 请求通过之前,服务器端都会验证令牌。

标签: ruby-on-rails reactjs devise jwt


【解决方案1】:

既然你是 return api 。反应正在消耗它。 Jwt 帮助返回您可能需要在前端持久化以做出反应的数据。用户名或电子邮件等数据。 示例:使您的网站标题显示用户已登录。

【讨论】:

  • Jwt 存储在用户浏览器本地存储中。然后你可以从那里调用它,如果 jwt 中的数据用户名存在,那么在前端执行 soooooo 。在用户方面,它不需要要求 db 再次验证用户,但可以通过 jwt
  • 如果还没有收到medium.com/@rajaraodv/…
  • 您好,危险品,请注意:您可以edit 回答(和问题)以添加信息。这样做的好处是让读者更清楚地看到,因为 cmets 很快就会出现故障,有时还会被自动删除
【解决方案2】:

我的回复并非针对Rails/React,而是针对所有使用 JWT 令牌的网络技术:

你说的是对的。从第 3 点开始,从 React 向 Rails 后端发出的所有请求都必须包含标头 Authorization: Bearer <token>

当 Rails 看到该标题时,它能够:

  • 通过检查令牌的签名来检查令牌是否有效
  • 对其进行解码并提取其中存储的任何信息。

请记住,JWT 令牌可以包含后端想要存储在其中的任何信息。而且客户端无法篡改,因为它是经过加密签名的,它会使它的签名无效。

上述属性(您可以在其中存储任何内容,前端随每个请求发送它并且没有人可以篡改它)帮助任何 Web 应用程序能够:

【讨论】:

  • 好吧,将数据从后端发送到前端或前端到后端的最佳方式是发送 JWT 令牌?
  • 仅适用于与会话相关的内容,例如用户信息和用户角色。有关其他信息,请使用 AJAX 或 websockets。
  • 我可以用 Axios 代替 AJAX 吗?
  • 是的,axios 发出 ajax 请求
【解决方案3】:

既然你是 return api 。反应正在消耗它。 Jwt 有助于返回您可能需要在前端持久化以做出反应的数据。用户名或电子邮件等数据。 示例:使您的网站标题显示用户已登录。 jwt 在前端的主要目的基本上是 auth。 除了 。 如果您使用的是单体应用程序,您需要为用户处理会话 在反应情况下,jwt 代表会话

【讨论】:

    【解决方案4】:

    jwt 在前端的主要目的基本上是 auth 或其他。 除了 。如果您使用的是单体应用程序,请记住您为用户处理会话在反应情况下,jwt 代表会话

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 2019-09-23
      • 2013-02-06
      • 2011-05-19
      相关资源
      最近更新 更多