对于以上使用场景,考虑了其他的一些登录方案,比如常见的自己手写登录、基于spring security、jwt以及spring security+jwt的解决方案,考虑到开发成本和技术成熟度,决定选择最后一种方案...概念和原理不做过多介绍,大致流程如下图
登录
登录完成返回给client一个token(身份签名)
验签
client访问服务端需带上token信息
2.spring security
三、技术方案...之所以选择jwt+security方案,是因为结合我们的具体业务场景,并考虑两种方案的优缺点以及应用场景,单独的一种都不太符合我们的诉求:
jwt:无状态,需要自己写认证和授权逻辑,并且对于用户修改密码后...,服务端无法主动剔出颁发出去token(当然这个也不一定算得上缺点,仔细思考下stateless就知道了)
spring security:对于表单登录有比较完善解决方案,对于前后端分离场景,需要自定义实现...spring-security能力,很好的复用了其权限模块,当然我们也可以完全自己实现,把权限认证和授权逻辑通过拦截器的方式嵌入到请求流中,并且在一些内部系统或者登录态要求不是很强的场景都可以使用jwt方案来实现简单的认证和授权