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

原理是 :通过非对称加密。公钥、私钥。公钥解密,私钥加密。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/


12-16 21:41