jwt token

Posted wjun0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jwt token相关的知识,希望对你有一定的参考价值。

1 ,session 认证机制:

1,用户登录,传递用户名和密码给客户端
2,服务器进行用户名和密码的校验,如果校验成功,将用户保存到session
3,将sessionid通过cookie返回给客服端,客服端会保存sessionID
4,客服端再次访问服务器,会携带cookie:sessionID ,服务端就可以获取对应的session信息,然后对用户的身份进行校验

  session认证存在的问题:

  1,session 信息存放在服务器端,如果用户过多,就占用过多的服务器的存储空间

  2,session 依赖于cookie,如果cookie被截获,可能产生csrf跨站请求伪造

  3,在分布式网站应用中,如果session存储到服务器的内存,session共享会用问题

 

2 ,jwt 认证机制

技术图片

jwt token 组成:

  字符串,由头部(header),载荷(payload)和签名(signatrue)3部分组成,用.隔开(点号)

 

 1,头部(header):存储的是token类型和签名加密的算法

    {‘token类型’,‘签名加密算法’}  对头部内容使用base64进行加密,生成的就是header

 

 2,载荷(payload):存储有效的数据和token的有效时间

    {"user_id": "用户id",

      "username": "用户名"

      "mobile": "15211111111"

      ...

      "exp": "token有效时间"}

   对载荷内容进行base64加密,生成的内容就是payload

 

  3,签名(signature):作用:防止jwt token 被伪造

  技术图片

 

jwt 使用注意点:

  • payload载荷不要存过于敏感数据

  • 服务器需要保存好签名加密密钥

  • 可以使用安全网络协议:https

jwt扩展使用:

? 功能:生成jwt token和校验jwt token

 

以上是关于jwt token的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket JWT Token 连接授权

AttributeError: ‘str‘ object has no attribute ‘decode‘解决方法

简单代码实现JWT(json web token)完成SSO单点登录

PHP JWT token实现

Jwt 中 token应该存储到哪里?

jwt Token验证与解析