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 {
    游客访问
}

发表新评论