普通的登录权限流程,结合jwt+redis
废话不多说,直接上图吧
其实上面用到的jwt只是一个生成token 的作用,并没有用到jwt优化资源的作用(但是安全性就是比较大的问题),当然你也可以自行生成token也是可以的,具体的代码也就不写了,网上一搜一大堆,稍微说下token相对于传统的session、cookie的优势吧
- 支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的;
- 无状态化,服务端无需存储token,只需要验证token信息是否正确即可,而session需要在服务端存储,一般是通过cookie中的sessionID在服务端查找对应的session;
- 无需绑定到一个特殊的身份验证方案(传统的用户名密码登陆),只需要生成的token是符合我们预期设定的即可;
- 更适用于移动端(Android,iOS,小程序等等),像这种原生平台不支持cookie,比如说微信小程序,每一次请求都是一次会话,当然我们可以每次去手动为他添加cookie;
- 避免CSRF跨站伪造攻击,还是因为不依赖cookie;