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

海宁建设局网站wordpress编辑页面改字体颜色

海宁建设局网站,wordpress编辑页面改字体颜色,中国铁路建设投资公司官方网站,wordpress伪静态cdn配置Redis代替session 实现登录流程 如果使用String#xff0c;他的value#xff0c;用多占用一点空间#xff0c;如果使用哈希#xff0c;则他的value中只会存储他数据本身#xff0c;如果不是特别在意内存#xff0c;其实使用String就可以 设计key的具体细节 在设计这个k…Redis代替session 实现登录流程 如果使用String他的value用多占用一点空间如果使用哈希则他的value中只会存储他数据本身如果不是特别在意内存其实使用String就可以 设计key的具体细节 在设计这个key的时候我们之前讲过需要满足两点 key要具有唯一性key要方便携带 如果我们采用phone手机号这个的数据来存储当然是可以的但是如果把这样的敏感数据存储到redis中并且从页面中带过来毕竟不太合适所以我们在后台生成一个随机串token然后让前端带来这个token就能完成我们的整体逻辑了 整体访问流程 当注册完成后用户去登录会去校验用户提交的手机号和验证码是否一致如果一致则根据手机号查询用户信息不存在则新建最后将用户数据保存到redis并且生成token作为redis的key当我们校验用户是否登录时会去携带着token进行访问从redis中取出token对应的value判断是否存在这个数据如果没有则拦截如果存在则将其保存到threadLocal中并且放行。 基于Redis实现短信登录 UserServiceImpl代码 // public static final String LOGIN_CODE_KEY login:code:; Override public Result login(LoginFormDTO loginForm, HttpSession session) {// 1.校验手机号String phone loginForm.getPhone();if (RegexUtils.isPhoneInvalid(phone)) {// 2.如果不符合返回错误信息return Result.fail(手机号格式错误);}// 3.从redis获取验证码并校验String cacheCode stringRedisTemplate.opsForValue().get(LOGIN_CODE_KEY phone);String code loginForm.getCode();if (cacheCode null || !cacheCode.equals(code)) {// 不一致报错return Result.fail(验证码错误);}// 4.一致根据手机号查询用户 select * from tb_user where phone ?User user query().eq(phone, phone).one();// 5.判断用户是否存在if (user null) {// 6.不存在创建新用户并保存user createUserWithPhone(phone);}// 7.保存用户信息到 redis中// 7.1.随机生成token作为登录令牌String token UUID.randomUUID().toString(true);// 7.2.将User对象转为HashMap存储UserDTO userDTO BeanUtil.copyProperties(user, UserDTO.class);MapString, Object userMap BeanUtil.beanToMap(userDTO, new HashMap(),CopyOptions.create().setIgnoreNullValue(true).setFieldValueEditor((fieldName, fieldValue) - fieldValue.toString()));// 7.3.存储String tokenKey LOGIN_USER_KEY token;stringRedisTemplate.opsForHash().putAll(tokenKey, userMap);// 7.4.设置token有效期stringRedisTemplate.expire(tokenKey, LOGIN_USER_TTL, TimeUnit.MINUTES);// 8.返回tokenreturn Result.ok(token); } 解决状态登录刷新问题 在这个方案中他确实可以使用对应路径的拦截同时刷新登录token令牌的存活时间但是现在这个拦截器他只是拦截需要被拦截的路径假设当前用户访问了一些不需要拦截的路径那么这个拦截器就不会生效所以此时令牌刷新的动作实际上就不会执行所以这个方案他是存在问题的 既然之前的拦截器无法对不需要拦截的路径生效那么我们可以添加一个拦截器在第一个拦截器中拦截所有的路径把第二个拦截器做的事情放入到第一个拦截器中同时刷新令牌因为第一个拦截器有了threadLocal的数据所以此时第二个拦截器只需要判断拦截器中的user对象是否存在即可完成整体刷新功能。 RefreshTokenInterceptor public class RefreshTokenInterceptor implements HandlerInterceptor {private StringRedisTemplate stringRedisTemplate;public RefreshTokenInterceptor(StringRedisTemplate stringRedisTemplate) {this.stringRedisTemplate stringRedisTemplate;}Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 1.获取请求头中的tokenString token request.getHeader(authorization);if (StrUtil.isBlank(token)) {return true;}// 2.基于TOKEN获取redis中的用户String key LOGIN_USER_KEY token;MapObject, Object userMap stringRedisTemplate.opsForHash().entries(key);// 3.判断用户是否存在if (userMap.isEmpty()) {return true;}// 5.将查询到的hash数据转为UserDTOUserDTO userDTO BeanUtil.fillBeanWithMap(userMap, new UserDTO(), false);// 6.存在保存用户信息到 ThreadLocalUserHolder.saveUser(userDTO);// 7.刷新token有效期stringRedisTemplate.expire(key, LOGIN_USER_TTL, TimeUnit.MINUTES);// 8.放行return true;}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {// 移除用户UserHolder.removeUser();} } LoginInterceptor public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 1.判断是否需要拦截ThreadLocal中是否有用户if (UserHolder.getUser() null) {// 没有需要拦截设置状态码response.setStatus(401);// 拦截return false;}// 有用户则放行return true;} }
http://www.hkea.cn/news/14348614/

相关文章:

  • 杭州专业做网站物流公司电话号码
  • 自己做的网站 怎么放大文件网页设计怎么做网站
  • 个人网站 可以做淘宝客吗wordpress 古腾堡
  • 做网站 淘宝物联网方案设计与实现
  • 做网站推广方法2019年开公司做网站可以吗
  • 泉州握旗公司网站建设如何制作网页广告
  • 网站seo注意事项适合口碑营销的产品
  • 罗村网站建设公司校园网的规划与设计
  • 网站域名一年多少钱国家工信部网站备案查询
  • 国家开放大学网站的作业怎么做网络营销哪些公司好做呢
  • 网站开发知识产权归属企业主页是什么
  • 全屏企业网站sae安装wordpress
  • 中国网站备案建网站 就能开店
  • 做车贷的网站番禺手机网站制作推广
  • 网站建设旗帜条幅wordpress小吃模版
  • 福建人力资源建设网站西宁建设厅人事局网站
  • 做留言的网站宝安三网合一网站建设
  • 网站建设功注册小规模公司流程以及费用
  • 广东商城网站建设价格适合做网站背景音乐
  • 网站建设案例讯息免费网站建设案例
  • 网站网站制作网站的微信怎么注册小程序商店
  • 织梦笑话网站网站三个月没排名
  • 单页网站 营销学做名片的网站
  • 潜山做网站广州网站排名优化公司
  • 网站开发语言查询 蔡学镛wild合成版是哪个网站做的
  • 公司的论坛与网站绑定php网站页面转wordpress
  • 淘宝联盟上怎么建设网站软文广告文案
  • 企业门户网站怎么做网站设计方案定制
  • 莆田外贸专业建站wordpress建站工具
  • dedecms 网站地图 插件软件库网站大全