先来一个通宵
昨晚之前手上的一个项目在改版后需要上线。
由于涉及支付平台的工程变动,
需要凌晨上线。
天公不作美,上线过程并不顺利,
先是服务无故报空指针,
后发现是三方服务异常导致。
关联方数据出现异常,
排查到天亮,一个通宵妥妥的了。
电销登录实现
我预先研究了一下spring security jwt 的登录权限实现。
需要将用户token和相关权限信息存入jwt中进行管理。
但是在这次的编码开发中,
开发组长给我的建议实现方式并不是这样的。
redis实现登录token管理
而是使用redis实现的用户token管理,
好像是最简便的一种实现方式,
通俗易懂也容易上手。
1.登录时
登录时验证用户名和密码。
两条逻辑,通过就生成token,返回。
不通过就直接放回错误码。
2验证通过后
也是分为2个要点。
一其是后端生成token,token可以使用固定前缀加uuid,
这个token前端拿到后,每次请求放入header中,
后端使用拦截器或者过滤器,对每一个请求进行处理,
解析header中有无在token这个参数,当且仅当token存在,且在redis中也存在时。
才能访问系统资源。
其二是token存入redis时的值可以用一个对象来存,对象中包含一些该用户的基本信息。
redis使用过期时间来控制token的有效时间。
前端权限控制
在登录时可以将该用户的权限值返回给前端,
前端根据权限值进行前端权限的控制。
后端权限控制
本系统中是通过注解进行权限判断的,
在每个方法或者类上加入特定的权限注解,
在前端调用指定方法时,
通过token拿到该token对应的用户,
根据用户获取用户的所有权限,
比对权限,进行权限的判断。
至此系统的登录权限处理就完工了。
加班狗
习惯性晚睡。
