Skip to content
qinmingyuan edited this page Dec 15, 2018 · 1 revision

鉴权方案

鉴权基本过程如下:

  1. 客户端登陆成功之后,服务端的成功响应中会包含Auth-Token信息,Auth-Token具有唯一性,且难以伪造,并隐含诸如过期时间、用户ID等一些信息;
Auth-Token: eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOjEsInN1YiI6ImF1dGgiLCJleHAiOjE1NDUyMDU3Nzl9.GMIgAJN6Nu4EK-sKEI6cEsRmFb0Ik2AmxIPirjaP9_o
  1. 客户端从header中取出Auth-Token的值缓存到本地;
  2. 客户端之后的任何一次请求都在Request Headers携带该:Auth-Token;
  3. 服务端检查Auth-Token,如能正常鉴权(未过期),将在本次Response中原样返回该 Auth-Token;如果服务端检查该Auth-Token已过期,则会重新生成新的Auth-Token 并在本次Response中携带返回;
  4. 如果服务端鉴权失败,则会返回401错误,此时客户端应跳转登陆页面;

设计思路

  • 安全性高:当Auth-Token被窃取之后,攻击者和用户同时使用该token过程中,任何一方的token更新都将导致另一方无法正常授权,此时需要使用账号密码重新验证;token 过期时间越短,安全性越高;

  • 客户端实现简单,几乎无附加成本;

  • 服务端可控鉴权策略:可主动过期某用户授权码,可自由调整Auth-Token过期时间,可设定Auth-Token过期多久之后需使用登陆重新授权;

Clone this wiki locally