APP登录流程规范

登录流程规范

登录需求

token储存前端有过期时间,token自动续期(用户无感知),长时间未使用需重新登录。

登录流程及前后端处理

  • **[前端]**发起登录请求
  • **[后端]**登录成功返回{"httpcode":200,"err":0,"msg":"ok","obj":["token":{"access_token":"xxx","expires":7200}]},登录失败返回{"httpcode":200,"err":xxx,"msg":"xxx","obj":[]}
  • **[前端]**登录成功,本地储存access_token,并根据expires字段计算过期时间当前时间戳+expires同时存储到本地。
  • **[前端]**当请求业务接口时,先判断本地储存中是否有access_token,如果有,再判断expires是否过期,如果expires未过期在HTTP header中携带access_token信息,其格式为Authorization Bearer access_token,如果expires已过期那么跳转到登录界面。如果本地储存中无access_token时,后端视其为游客登录。(这里流程比较复杂,见附录)
  • **[后端]**接收请求后,先判断是否有access_token,如果无代表其是游客登录,根据接口的权限返回让用户登录或者提示或者显示内容。如果有,先判断其是否有异常(数据被串改/格式是否正确),再判断是否超过expires过期时间(如果超过,返回特殊错误码,让用户跳转到重新登录页面),都验证通过后,返回请求数据。

附录

前端每个次发起请求时,处理逻辑如下:

if(本地储存中是否有access_token) {
	if(exp未过期`){
		在`HTTP header`中携带`access_token`信息
	}esle{
		跳转到登录界面
		清除access_token
	}
} esle {
	游客访问
}

发表新评论