当前位置: 首页 > news >正文

汕头公司做网站营销网站建设维护

汕头公司做网站,营销网站建设维护,超级商城,网站编程好学吗关于单点登录 单点登录的基本实现思想#xff1a; 当客户端提交登录请求时#xff0c;服务器端在验证登录成功后#xff0c;将生成此用户对应的JWT数据#xff0c;并响应到客户端 客户端在后续的访问中#xff0c;将自行携带JWT数据发起请求#xff0c;通常#xff0c…关于单点登录 单点登录的基本实现思想 当客户端提交登录请求时服务器端在验证登录成功后将生成此用户对应的JWT数据并响应到客户端 客户端在后续的访问中将自行携带JWT数据发起请求通常JWT数据会放在请求头的Authorization属性中 在服务器端的任何服务都可以解析JWT数据从而创建对应的Authentication对象然后将Authentication对象存入到SecurityContext中 目前在之前[SpringBoot]Spring Security框架_万物更新_的博客-CSDN博客已经实现的代码有几个问题   如何退出登录客户端丢弃JWT即可 服务器端如何保证客户端真的丢弃了JWT 如果第三方盗用了JWT如何处理 目前的代码中将管理员的权限列表存储在JWT中导致JWT数据太长并且权限数据应该视为敏感数据不应该表现在JWT中 以上问题都可以结合Redis的应用来解决解决方案如下 退出登录的问题 【推荐】【解决方案1】当验证登录成功后将JWT存入到Redis中在处理JWT数据的过滤器JwtAuthorizationFilter中首先检查Redis中的信息如果此JWT在Redis中存在例如白名单则视为有效所以当退出登录时只需要在Redis中将对应的JWT删除即可 【解决方案2】当退出登录时将JWT存入到Redis中在处理JWT数据的过滤器JwtAuthorizationFilter中首先检查Redis中的信息如果此JWT在Redis中的“黑名单”中则视为无效 盗用JWT的问题 【判断标准】以“IP地址相同或设备信息相同”为真正用户的判断标准即如果IP地址与登录时不同且设备信息与登录时的也不同则视为“盗用” 【实现手段】当用户提交登录请求时就需要获取用户的IP地址与设备信息当验证登录通过后将此用户的JWT、IP地址、设备信息全部存入到Redis中后续当客户端提交请求后在JwtAuthorizationFilter中根据客户端请求中携带的JWT检查此次请求时的IP、设备信息与此前在Redis中存入的是否相同如果两者均不同则视为“盗用”。 携带权限列表的问题 不再将权限列表保存在JWT数据中而是存在Redis中 所以基于以上分析在处理单点登录时Redis中的数据大概是 KeyValue用户1的JWT用户1的登录时IP地址、设备信息、权限列表用户2的JWT用户2的登录时IP地址、设备信息、权限列表 基于以上做法还可以更加【实时的】、有效的管理用户信息例如将用户的启用状态也存入到Redis中每次请求时都需要检查同时当用户的启用状态发生变化时更新Redis中的数据   关于以上问题的具体解决方案 接收客户端的登录请求时需要获取客户端的IP地址和设备信息浏览器信息例如 AdminController.java remoteAddr就是它的ip地址userAgent就是浏览器的设备信息然后传入service里面去。 当验证登录通过后将JWT作为Key把相关信息IP地址、浏览器信息、用户的权限列表、用户的启用状态等作为值存入到Redis中并且JWT中不再包含权限列表 AdminServiceImpl.java 以上jwt调整为只存入 id和用户名。 以上往redis里面去存专门准备了一个AdminLoginInfoPO对象   /*** 管理员登录信息的存储对象主要用于写入到Redis中** author javatedu.cn* version 0.0.1*/ Data public class AdminLoginInfoPO implements Serializable {/*** 管理员ID*/private Long id;/*** 管理员的启用状态*/private Integer enable;/*** 管理员登录时的IP地址*/private String remoteAddr;/*** 管理员登录时的浏览器版本*/private String userAgent;/*** 管理员的权限列表的JSON字符串*/private String authorityListJsonString;}时长是存入redis里面的有效时长。   在JwtAuthorizationFilter中当接收到JWT后基于此JWT从Redis中获取信息如果获取不到有效信息则此JWT视为无效的当可以获取到相关信息时检查此用户的状态检查IP地址、浏览器信息最终生成Authentication时权限也是来自Redis中读取到的数据   回头其他的管理员把这个号禁用了redis里面就因该把它改为0所以以下对它做一个检查如果0就是被禁用了从而去响应信息 最后以前的权限信息是从解析jwt来得调整为从redis获取对象解析得到authorities得到权限列表这个权限信息就用于去创建认证信息最后放在jwt里面 关于退出登录 以上通过RequestHeader注解就得到jwt了这个注解表示数据是来自请求头的。 以上把jwt删了后续就是一个不认的状态了退出登录就处理好了。 关于jwt过期的问题 在上面的代码中我们对jwt设置了过期的如果这个jwt过期了因该怎么办比如用户还在逛某宝是在没用的时候过期了去登录是合理的如果在逛的时候过期了需要登录就不合理。  解决办法是在解析jwt的时候是能得到剩余有效期的以下可以看出jwt包含过期时间所以我们可以制定一个标准临近过期时间就给它续上。
http://wiki.neutronadmin.com/news/64251/

相关文章:

  • 做爰免费网站济南市章丘区建设局网站
  • 刷单的网站怎么建设信誉好的盐城网站开发
  • 戴尔公司网站建设特点天津做网站哪家服务好
  • 网站制作最流行软件化工企业网站模板
  • 淘宝网站维护注册过什么网站
  • 保险网站源码云南网络科技公司排名
  • 装饰工程网站模板个人简历模板空白表格
  • 威海 医院网站建设陕西交通建设集团蓝商公司网站
  • 网站推广存在的问题网页设计免费模板素材
  • 网站建设内页品牌设计书籍
  • 公司网上注册在哪个网站wordpress快速下载地址
  • 广州网站建设公司怎么选哪些cms做同城网站比较好
  • 凡科网做网站视频手机上怎样制作网站
  • 东莞神马seo推广排名长沙百度网站推广优化
  • iis中的网站启动不了乐清网站建设yq01
  • 广东建设安全协会网站游戏网站有哪些
  • 网站开发教程视频西部数码网站管理助手 提权
  • 网站上的楼价走势图怎么做门户网站建设方式
  • 温州网站推广效果好微信营销的含义
  • 北京住房和城乡建设官方网站摄影师如何做网站
  • 济宁计算机网站建设培训班烟台网站制作公司哪家好
  • 聊城集团网站建设报价一流的网站建设
  • 做网站app需要懂些什么免费主题大全软件下载
  • 杭州网站推广平台皮肤科在线医生免费咨询
  • 玉林做网站优化推广化妆品网站设计思路
  • 中国空间站组成部分建设一个网站价格
  • 深圳市做网站做网站的钱叫什么科目
  • 建设平台网站协议唐山企业做网站
  • 石家庄哪里可以做网站网站页面设计效果图
  • 做网贷网站微站网站