ruby-on-rails - JWT 在 Rails + React 应用程序中用于身份验证有什么用

标签 ruby-on-rails reactjs devise jwt

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

实际上,我明白:

1/如果用户想要登录:他填写了表单,React 从表单中获取数据并向 Rails API 发出这些信息的发布请求。

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

3/React 接收 JWT token 。 (??这个token有什么用??)

谢谢

最佳答案

我的回复并不特定于 Rails/React ,而是所有使用 JWT token 的网络技术:

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

当 Rails 看到该 header 时,它能够:

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

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

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

关于ruby-on-rails - JWT 在 Rails + React 应用程序中用于身份验证有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918147/

相关文章:

ruby-on-rails - 设计创建时髦的编辑用户密码路径

ruby-on-rails - Ruby on Rails - 设计用户/sign_out 不工作

ruby-on-rails - Rails 中有没有办法说 "run all the validates EXCEPT :password"?

ruby-on-rails - Rails Assets 缓存中断 前几个页面加载

ruby-on-rails - 如何指定与factory_bot的关联?

ruby-on-rails - 更改设备默认布局

javascript - 如何将输入中的 0 替换为个位数?

javascript - 如何在 Rails 6 中禁用 TurboLinks?

javascript - 在 ReactJS 创建 React 应用程序中创建构建风格

reactjs - React Typescript 自定义 Hook : Property 'prop_name' does not exist on type '{}'