背景

在开发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跨域的支持