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

广西建设网站培训做lol数据的网站有哪些

广西建设网站培训,做lol数据的网站有哪些,网站程序模板,如何网上外贸接单JWT 由三部分组成#xff0c;用点#xff08;.#xff09;分隔 Header#xff08;头部#xff09; Payload#xff08;负载#xff09;Signature#xff08;签名) 一、原理 Jwt原理其实很简单#xff0c;在后端首先要有个拦截器#xff0c;他会拦截所有http请求用点.分隔 Header头部 Payload负载Signature签名) 一、原理 Jwt原理其实很简单在后端首先要有个拦截器他会拦截所有http请求意思就是所有访问都被拦截掉当然这是不合理的。所以首先我们要手动放行登陆页面也就是登录请求不拦截可以访问然后自此以后的所有请求都会被拦截。如何不让他拦截呢这时候就要设置一些规则来放行请求那么这个规则就是Jwt令牌的用处。他会生成一个token在前后端传来传去怎么传呢前端的http请求都有一个headertoken就会被携带在里面后端解析http请求拿到token来验证。如果通过则放行不通过就拦截。注意token在实体类中有字段但是数据库中不必有专门的列来保存token TableField(exist false)private String token; 二、第一次请求生成token不验证token 1.首先当用户成功登陆时会请求/login PostMapping(/login)public Result login(RequestBody User user) {if(StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword())) {return Result.error(帐号或密码不能为空);}user userService.loginUser(user);return Result.success(user);} 2.访问user的服务层的loginUSer先通过user参数查询对应的user给dbuser判断是否存在和user参数的密码和查到的密码是否相同。都满足则创建token把token通过set方法给dbuser返回给前端 Overridepublic User loginUser(User user) {User dbuser userMapper.selectByUsername(user.getUsername());if(dbuser null){throw new ServiceException(用户名或密码错误);}if(!user.getPassword().equals(dbuser.getPassword())){throw new ServiceException(用户名或密码错误);}String token TokenUtils.createToken(dbuser.getId().toString(), dbuser.getPassword());dbuser.setToken(token);return dbuser;} 这里面用到了TokenUtils的createToken方法就是生成token的地方 Component // 标记此类为Spring组件使其可以被Spring管理 public class TokenUtils {// 声明一个静态的UserMapper用于在静态方法中访问用户数据private static UserMapper staticUserMapper;// 注入UserMapper实例ResourceUserMapper userMapper;// 在类实例化后设置静态的UserMapperPostConstruct // 标记此方法在构造函数后自动执行public void setUserService() {staticUserMapper userMapper; // 将实例UserMapper赋值给静态变量}/*** 生成token** param userId 用户ID* param sign 用于签名的密钥* return 生成的token字符串*/public static String createToken(String userId, String sign) {// 创建JWT并设置载荷return JWT.create().withAudience(userId) // 将用户ID存储在token的载荷中.withExpiresAt(DateUtil.offsetHour(new Date(), 2)) // 设置token有效期为2小时.sign(Algorithm.HMAC256(sign)); // 使用指定的密钥签名token}}三、随后的请求都要验证token 上面我们已经说到第一次请求也就是登录时会生成token返回给前端。前端会保存在浏览器中以后每次header里面都会携带这个token那么现在就开始第二次请求。 1.验证token过程 因为拦截器的作用发过来的http请求会被拦截以验证规则。 当前端请求发送到后端会首先进到这里验证token而不是直接访问GetMapping(*请求的接口*) 首先会从请求头拿token如果没有则拦截否则 验证token是否为空如果为空拦截 不为空后解析token中user的id然后查询数据库是否有这个user否则拦截当查到后 使用用户密码生成一个验证器为什么是密码呢因为上面我们生成token时就是用密码作为密钥与传过来的token进行验证如果通过则验证成功不拦截请求访问GetMapping(*请求的接口*) /*** 功能JWT 拦截器用于对请求进行身份验证* 作者lhp* 日期2024/9/26 23:01*/ public class JwtInterceptor implements HandlerInterceptor {Resourceprivate UserMapper userMapper; // 自动注入 UserMapper用于数据库操作Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 从请求头中获取 tokenString token request.getHeader(token);// 如果请求头中没有 token则尝试从请求参数中获取if (StrUtil.isBlank(token)) {token request.getParameter(token);}// 执行认证首先检查 token 是否为空if (StrUtil.isBlank(token)) {// 如果 token 为空抛出未授权异常throw new ServiceException(401, 请登录);}// 获取 token 中的用户 IDString userId;try {userId JWT.decode(token).getAudience().get(0); // 解码 token获取用户 ID} catch (JWTDecodeException j) {// 解码失败抛出未授权异常throw new ServiceException(401, 请登录);}// 根据 token 中的 userId 查询数据库获取用户信息User user userMapper.selectById(Integer.valueOf(userId));if (user null) {// 如果用户不存在抛出未授权异常throw new ServiceException(401, 请登录);}// 使用用户密码生成 JWTVerifier用于验证 tokenJWTVerifier jwtVerifier JWT.require(Algorithm.HMAC256(user.getPassword())).build();try {// 验证 token 的有效性jwtVerifier.verify(token);} catch (JWTVerificationException e) {// 验证失败抛出未授权异常throw new ServiceException(401, 请登录);}// 所有验证通过返回 true表示请求可以继续return true;} }至此就是Jwt的整个流程。以下是拦截器的代码这个配置类的主要功能是设置一个 JWT 拦截器用于拦截所有的 HTTP 请求以便于进行身份验证但对 /login 请求路径不进行拦截 /*** 功能拦截器配置类用于配置和注册自定义的拦截器* 作者lhp* 日期2024/9/26 23:15*/ Configuration // 标记该类为配置类Spring 会在运行时自动识别并加载该类的 Bean 定义 public class InterceptorConfig extends WebMvcConfigurationSupport {/*** 重写 addInterceptors 方法用于添加自定义拦截器* * param registry 拦截器注册中心用于注册自定义拦截器*/Overrideprotected void addInterceptors(InterceptorRegistry registry) {// 注册 JwtInterceptor 拦截器registry.addInterceptor(jwtInterceptor()).addPathPatterns(/**) // 拦截所有请求路径.excludePathPatterns(/login); // 排除登录路径不拦截登录请求// 调用父类的 addInterceptors 方法确保其他配置能够正常工作super.addInterceptors(registry);}/*** 定义 JwtInterceptor BeanSpring 会自动管理该 Bean 的生命周期* * return JwtInterceptor 实例*/Beanpublic JwtInterceptor jwtInterceptor() {return new JwtInterceptor(); // 创建并返回 JwtInterceptor 的新实例} }
文章转载自:
http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn
http://www.morning.ydmml.cn.gov.cn.ydmml.cn
http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.rpms.cn.gov.cn.rpms.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.krxzl.cn.gov.cn.krxzl.cn
http://www.morning.rwlnk.cn.gov.cn.rwlnk.cn
http://www.morning.tdscl.cn.gov.cn.tdscl.cn
http://www.morning.cnqwn.cn.gov.cn.cnqwn.cn
http://www.morning.qznkn.cn.gov.cn.qznkn.cn
http://www.morning.wlstn.cn.gov.cn.wlstn.cn
http://www.morning.prkdl.cn.gov.cn.prkdl.cn
http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn
http://www.morning.tznlz.cn.gov.cn.tznlz.cn
http://www.morning.gwsdt.cn.gov.cn.gwsdt.cn
http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn
http://www.morning.qxljc.cn.gov.cn.qxljc.cn
http://www.morning.zxxys.cn.gov.cn.zxxys.cn
http://www.morning.swdnr.cn.gov.cn.swdnr.cn
http://www.morning.nclbk.cn.gov.cn.nclbk.cn
http://www.morning.jbztm.cn.gov.cn.jbztm.cn
http://www.morning.wtrjq.cn.gov.cn.wtrjq.cn
http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn
http://www.morning.qtltg.cn.gov.cn.qtltg.cn
http://www.morning.zglrl.cn.gov.cn.zglrl.cn
http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com
http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn
http://www.morning.msgnx.cn.gov.cn.msgnx.cn
http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn
http://www.morning.rwmft.cn.gov.cn.rwmft.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.knngw.cn.gov.cn.knngw.cn
http://www.morning.twdkt.cn.gov.cn.twdkt.cn
http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn
http://www.morning.znqxt.cn.gov.cn.znqxt.cn
http://www.morning.lbfgq.cn.gov.cn.lbfgq.cn
http://www.morning.lgznc.cn.gov.cn.lgznc.cn
http://www.morning.kmprl.cn.gov.cn.kmprl.cn
http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn
http://www.morning.gpsrk.cn.gov.cn.gpsrk.cn
http://www.morning.rdwm.cn.gov.cn.rdwm.cn
http://www.morning.qkqhr.cn.gov.cn.qkqhr.cn
http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn
http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn
http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn
http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn
http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn
http://www.morning.gcqdp.cn.gov.cn.gcqdp.cn
http://www.morning.gnkbf.cn.gov.cn.gnkbf.cn
http://www.morning.rymd.cn.gov.cn.rymd.cn
http://www.morning.dkmzr.cn.gov.cn.dkmzr.cn
http://www.morning.hbdqf.cn.gov.cn.hbdqf.cn
http://www.morning.rkfh.cn.gov.cn.rkfh.cn
http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn
http://www.morning.wbhzr.cn.gov.cn.wbhzr.cn
http://www.morning.smxrx.cn.gov.cn.smxrx.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.ryysc.cn.gov.cn.ryysc.cn
http://www.morning.zfyr.cn.gov.cn.zfyr.cn
http://www.morning.qcymf.cn.gov.cn.qcymf.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn
http://www.morning.bxsgl.cn.gov.cn.bxsgl.cn
http://www.morning.krklj.cn.gov.cn.krklj.cn
http://www.morning.fbpdp.cn.gov.cn.fbpdp.cn
http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn
http://www.morning.rxnl.cn.gov.cn.rxnl.cn
http://www.morning.hymmq.cn.gov.cn.hymmq.cn
http://www.morning.wcghr.cn.gov.cn.wcghr.cn
http://www.morning.crkhd.cn.gov.cn.crkhd.cn
http://www.morning.btpzn.cn.gov.cn.btpzn.cn
http://www.morning.mhpmw.cn.gov.cn.mhpmw.cn
http://www.morning.llgpk.cn.gov.cn.llgpk.cn
http://www.tj-hxxt.cn/news/255275.html

相关文章:

  • 怎么建淘宝优惠券网站做推广wordpress 图片压缩插件
  • 企业网站用什么cms比较好网站开发外包 价格
  • 网站源码开发石家庄做网站
  • 如何做购物网站的教程电影网站app怎么做
  • 辽宁省住建厅建设网站wordpress设置超链接
  • 彩票网站自己可以做吗公司 做网站
  • 天津 网站优化巨野县建设局网站
  • 做网站的外部链接关系分析的工具在猪八戒上做网站要注意什么
  • 网站留言板模板百度云搭建wordpress
  • 信用卡在哪些网站上做推广网站建设工单系统
  • 成都房地产网站建设网站建设技术可行性
  • 新品发布会策划昆明做整站优化
  • 网站建设全网推广小程序装潢设计培训班学费多少钱
  • 徐州seo建站网站引导页下载
  • 浏览不良网站会被网警抓吗北京美的网站
  • 诸暨广川建设公司网站app下载量排名
  • 旅游网站建设方案两百字建筑用模板是什么板材
  • 做公司网站的多少钱网站建设合作分成合同
  • 网站分析报告怎么写友情链接的作用大不大
  • 电子商务网站建设 期末考试试卷以及答案wordpress 删除 加载中
  • 提交网站到谷歌嘉兴网站关键词优化
  • 宫免费网站天津建设工程信息网评标专家 终审
  • 网站建设要学会什么ppt下载免费完整版
  • 新网站建设流程软文推广的作用
  • 云主机网站配置洛阳市建设规划局网站
  • 企业网站模板下载软件营销型企业网站的功能
  • 网站工作室 需要什么手续天堂资源とまりせっくす
  • 一家专门做开网店的网站衡水网站建设优化推广
  • 哈尔滨网站推广优化公司做网站店铺装修的软件
  • 服饰技术支持 东莞网站建设如何在网站中加入百度地图