Token是什么
概念
Token在计算机身份认证中是令牌的意思,在词法分析中是标记的意思,一般作为邀请、登录系统使用。
传统身份验证的方法
Http是一种没有状态的协议,也就是它并不知道谁是访问应用。这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下。
解决的方法就是,当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录,这个记录里可以说明一下登录的用户是谁,然后把这条记录的id号发送给客户端,客户端收到以后把这个id号存储在cookie里,下次这个用户再向服务端发送请求是,可以带着这个cookie,这样服务端会验证一下这个cookie里的信息,看看能不能再服务端这里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给客户端。
基于Token的身份验证方法
使用基于token的身份验证方法,在服务端不需要存储用户的登录记录,大概流程是这样的:
1.客户端使用用户名、密码请求登录
2.服务端收到请求,去验证用户名、密码
3.验证成功后,服务端会签发一个Token,再把这个Token发送到客户端
4.客户收到Token之后可以把它存储起来,比如放在Cookie里或Local Storage里
5.客户端每次向服务端请求资源的时候需要带这服务端签发的Token
6.服务端收到请求,然后去验证客户端请求里带着的Token,如果验证成功,就向客户端返回请求的数据