我不明白 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 应用程序能够:
- 有 shared nothing architecture - 因为 session 完全存储在 UI 上,所以任何后端工作人员/机器都可以处理任何请求
- 商店more info在 session 中比他们使用signed cookies用于 session 。
关于ruby-on-rails - JWT 在 Rails + React 应用程序中用于身份验证有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918147/