背景
在开发App时,需要解决App的登录认证管理,有以下3种方案:
1、Cookie Session方案
2、JWT方案
3、自己研发的AppToken方案
1、Cookie Session方案
本方案已使用在PC版商城中,工作的很好,但不适合App。
相关文档: ajax登录需求与方案设计 , usm-用户登录状态管理器
不适合app的原因,主要是本方案的登录状态,在客户端是存储在Cookie中的。
小程序:不支持Cookie;
H5:在开发环境不能跨域携带Cookie,但有这个要求。在生产环境H5页面与服务端部署在一起是没有这个问题的;
app:不能跨域携带Cookie,但有这个要求;我方使用uniapp来开发app,uniapp开发的app 端默认情况下不支持 cookie。
2、JWT方案
经过研究,服务端无法主动控制让jwt失效。在退出登录、修改密码时怎样实现JWT Token失效是一个问题,JWT的续命也是个问题。
相关文档: 登录认证方案-JWT简述
3、自己研发的AppToken方案
本方案各方面表现都比较均衡,整体满意。所以 选用此方案 。
唯一在性能方面要注意,AppToken是存储在表中,每次验证都要查库。已通过缓存技术来解决。
相关文档: 使用CorsFilter来实现CORS跨域的支持