问题
App 安装后,第一次启动时需要登录(在某些页面提示需要登录或者直接启动在登录界面)。而只要登录成功后,就不需要每次启动时再次登录。不过,当你的 App 长期未启动,再次启动时,就需要登录。这个是怎么实现的?App 又是怎么保持登录状态的?
思路实现
对于 accessToken (获取Token)和 refreshToken (刷新Token)接口,服务端一般会返回如下字段:
-
Token
:刷新后新的 Token -
currentTime
:当前服务器时间 -
refreshTime
:Token 可刷新时间 -
expireTime
:Token 过期时间 -
code
:刷新 Token 状态码
注:一般来说,如果未到刷新 Token 时间去刷新 Token,返回的就是之前旧的 Token。(为了方便,这里的 Time 单位都统一为秒,Token 过期 code = 50000)
流程图
- 这里的
NSTimer
建议 add 到NSRunLoopCommonModes
- Token 本地化建议异步存储
- Token 读写较频繁,注意读写安全