身份认证
服务端提供资源给客户端,但是某些资源是有条件的。所以服务端要能够识别请求者的身份,然后再判断所请求的资源是否可以给请求者。
token是一种身份验证的机制,初始时用户提交账号数据给服务端,服务端采用一定的策略生成一个字符串(token),token字符串中包含了少量的用户信息,并且有一定的期限。服务端会把token字符串传给客户端,客户端保存token字符串,并在接下来的请求中带上这个字符串。
它的工作流程大概是这样:
组件图
Token机制
在这样的流程下,我们需要考虑下面几个问题:
- 服务端如何根据token获取用户的信息?
- 如何确保识别伪造的token?
这里是指token不是经过服务端来生成的。 - 如何应付冒充的情况?
非法客户端拦截了合法客户端的token,然后使用这个token向服务端发送请求,冒充合法客户端。
用户匹配
服务端在生成token时,加入少量的用户信息,比如用户的id。服务端接收到token之后,可以解析出这些数据,从而将token和用户关联了起来。
防伪造
一般情况下,建议放入token的数据是不敏感的数据,这样