Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6151823
  • 博文数量: 498
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6740
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(498)

文章存档

2020年(55)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: Python/Ruby

2020-10-14 15:35:40

无状态,可用在分布式集群中。
登录时候先去登录服务器,申请一个认证(带有签名);
然后拿到这个签名,跨域登录其他服务器。

原理是 :通过非对称加密。公钥、私钥。公钥解密,私钥加密。token存储在客户端(不同于session存储在服务器。 http使用时候,一般通过 head的Authorization 携带)

集群中所有服务器,存储相同的公钥、私钥。登录其他服务器(非登录服务器)时候,带有token。服务器用公钥、私钥检验签名是否正确。
通俗的讲,申请一个通行证,到处使用(使用时候,用秘钥判断是否是真的)
有过期时间,不设定的话默认15分钟(具体看源码)

具体实践使用,可用Flask-JWT-Extended。官网资料
https://flask-jwt-extended.readthedocs.io/en/latest/

若考虑购物之类场景,可采用refresh token 。详细参看 https://flask-jwt-extended.readthedocs.io/en/latest/token_freshness/


阅读(111) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~