http 是一种无状态的协议
这里无状态怎么理解: 前后两次请求它不知道这是同一个人 还是不同的人请求的
传统的认证模式:采用session 和cookie结合的方式
前后端分离的传统:用户信息生成token,token和对应的ID 保存到数据库中。我们django rest framwork 的 token auth 就是采用的这种
接着把token传给用户,存入浏览器cookie,之后的请求带上这个cookie,后端会根据这个cookie 值查询用户,验证过期的逻辑表里面多了一个字段,以后后端的验证
问题:xss 漏洞
cookie 可以被js 读取,作为后端识别用户的标识,cookie 的泄露意味着信息的不安全,特别是我们django rest framwork 的token auth 是没有过期时间的
如果将验证信息保存数据库。每次都要查询。保存session,加大了服务器端存储压力。
。。。。。
jwt 是一种开放标准,它定义了一种用户简洁,自包含的用户通信双方之间的以json 对象那的形式安全传递信息的方法,
。。。。。。
只要我们生成的token遵循一定的规律,比如使用对称加密算法来加密id 形成token。
服务端只需要解密token 就能知道id。