JWT 认证之前后端分离

浏览器本身是无状态的请求。所以如何验证用户的权限呢? 传统的验证方式是将之保存在数据库中,这就问题很多,xss漏洞导致用户的token的用户泄露,用户信息就不再安全。及时加入了验证过期, 但是还有有一段时间还是会导致这个问题, 只是时间短一些,而且如果用户量过大,会加深服务器的存储压力和开销。所以用JWT 会避免这个问题。当然JWT 会对SEO 不友好。

JWT(JSON Web Token)分为三部分:Header、Payload、Signature。

1、Header
header所表示的JSON对象通常由2个部分组成:token的类型,即”JWT”; token所采用的hash算法,例如HMAC SHA256或者RSA。

{
  'typ': 'JWT',
  'alg': 'HS256'
}

2、Payload
payload为JWT的第二部分,其JSON对象包含一系列键值对(key/value)。其中,有些预定义键有特殊含义,比如iat、exp等,iat表示JWT生成的实际,而exp代表JWT过期的时间。开发者可以使用其他非预定义的键用于传输数据。

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

3、Signature
signatrue,即签名,是JWT的第三部分。它由编码的header和payload,使用用户指定的密钥secret,采用header中指定的哈希算法生成。 所以秘钥很关键,它是不被外界所知道的。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

通过JWT 这三种方式保证了通用性,他适合向web应用传递一些非敏感信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值