JSON WEB Token(JWT)

基于 JWT的token 身份认证方案

https://v3u.cn/book/jwt.html


通过json进行加密签名来实现授权验证的方案

JWT 是基于token身份认证的方案,在安全传输的前提下传送基本信息,减轻对外部存储的依赖,减少了分布式组件的依赖,减少了硬件资源的消耗

Browser发送带有用户名密码的POST请求

Server通过后生成 JWT ,把用户信息存放到 JWT

JWT 放到 cookie中

browser 发送带有 jwt cookie 请求

server 验证签名从 jwt 获取用户信息,返回给 browser 响应信息


 

Jwt 体积小,传输速度快

传输方式 URL POST HTTP头部

机构化,在payload 包含用户验证的相关信息,无需再连接数据库进行验证

跨域验证,单点登录

  • 单点登录,SSO(single sign on),在多个应用系统中,用户只需要登陆一次,便可以访问所有相互信任的应用

组成

. 为分隔符分为三部分

头部

包括 类别和加密算法

载荷 pyload

存放有效信息的地方

签名

对头部和载荷的内容进行签名。保证token不被篡改

 

好处

  • 性能,把用户状态分散到了客户端,相比于session,大大减轻了服务器的压力
  • 支持单点登录,因为用户的状态已经被传送到了客户端
  • 前后端分离
  • 兼容性,支持移动设备,跨程序调用
  • 可扩展性
  • 有签名,可以防止被篡改

缺陷

  • 不适合存放大量信息

 

pip install pyjwt  ---->  jwt    -----> encode()/decode()

 

posted @ 2020-05-29 20:00  扣剑书生  阅读(160)  评论(0)    收藏  举报