token校验的过程

(1)问题分析

考官想了解你对token的认识。

(2)核心答案讲解

Token多用于单点登录
1)客户端使用用户名跟密码请求登录
2)服务端收到请求,去验证用户名与密码
3)验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里,如果是单点登录应该放到本地,比如redis中
4)客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
和CAS的区别:
服务端不存储token,而CAS是存储TGC(大key,服务端向客户端发送的serviceticket小key)
Token可以支持跨域的单点登录

(3)问题扩展

单点登录和跨域单点登录的区别?
有多个应用系统,如果在同一域名下比如user.pyg.com和cart.pyg.com这就是普通的单点登录,
但是如果不在同一域名 比如user.pyg.com和cart.scf.com,这时就需用跨域单点登录的解决方案了,最有名的规范是JWT实现。

(4)结合项目中使用

使用CAS进行用户校验。在CAS中提到的service ticket(ST)就可以当做token,区别是CAS服务器中存储了一个TGC,用于和ST的比较。

点击此处
隐藏目录