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

网站免费模版代码门户网站内容管理系统

网站免费模版代码,门户网站内容管理系统,网站制作代,优化方案英语答案JWT JSON Web Token#xff08;JSON Web令牌#xff09; 是一个开放标准(rfc7519)#xff0c;它定义了一种紧凑的、自包含的方式#xff0c;用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任#xff0c;因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…JWT JSON Web TokenJSON Web令牌 是一个开放标准(rfc7519)它定义了一种紧凑的、自包含的方式用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法或使用RSA或ECDSA的公钥/私钥对进行签名。 通过JSON形式作为Web应用中的令牌用于在各方之间安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。 JWT登录流程 使用了JWT技术 流程 1.前端通过表单的方式将用户的登录信息发送到后端 2.后端对登录的信息进行检验合法的话生成JWT并与结果一起返回给前端 3.前端接收到返回结果进行响应并将JWT保存前端可以将返回的结果保存在localStorage浏览器本地缓存或sessionStoragesession缓存上退出登录时前端删除保存的JWT即可 4.后续前端每次请求携带JWT进行后端检查JWT 的合法性存在验证JWT的有效性。例如检查签名是否正确﹔检查Token是否过期;检查Token的接收方是否是自己 5.验证通过后后端使用JWT中包含的用户信息进行其他逻辑操作返回相应结果。 使用练习 1.引入依赖 !--引入JWT-- dependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.10.0/version /dependency 2.登录成功后生成jwt令牌 MapString, Object claims new HashMap();claims.put(JwtClaimsConstant.EMP_ID, employee.getId());String token JwtUtil.createJWT(jwtProperties.getAdminSecretKey(),jwtProperties.getAdminTtl(),claims);3.在拦截器中配置token解析 //1、从请求头中获取令牌String token request.getHeader(jwtProperties.getAdminTokenName());//2、校验令牌try {log.info(jwt校验:{}, token);Claims claims JwtUtil.parseJWT(jwtProperties.getAdminSecretKey(), token);Long empId Long.valueOf(claims.get(JwtClaimsConstant.EMP_ID).toString());log.info(当前员工id{}, empId);BaseContext.setCurrentId(empId);//3、通过放行return true;} catch (Exception ex) {//4、不通过响应401状态码response.setStatus(401);return false;}4.封装JWT使用工具类生成token和解密token /*** 生成jwt* 使用Hs256算法, 私匙使用固定秘钥** param secretKey jwt秘钥* param ttlMillis jwt过期时间(毫秒)* param claims 设置的信息* return*/public static String createJWT(String secretKey, long ttlMillis, MapString, Object claims) {// 指定签名的时候使用的签名算法也就是header那部分SignatureAlgorithm signatureAlgorithm SignatureAlgorithm.HS256;// 生成JWT的时间long expMillis System.currentTimeMillis() ttlMillis;Date exp new Date(expMillis);// 设置jwt的bodyJwtBuilder builder Jwts.builder()// 如果有私有声明一定要先设置这个自己创建的私有的声明这个是给builder的claim赋值一旦写在标准的声明赋值之后就是覆盖了那些标准的声明的.setClaims(claims)// 设置签名使用的签名算法和签名使用的秘钥.signWith(signatureAlgorithm, secretKey.getBytes(StandardCharsets.UTF_8))// 设置过期时间.setExpiration(exp);return builder.compact();}/*** Token解密** param secretKey jwt秘钥 此秘钥一定要保留好在服务端, 不能暴露出去, 否则sign就可以被伪造, 如果对接多个客户端建议改造成多个* param token 加密后的token* return*/public static Claims parseJWT(String secretKey, String token) {// 得到DefaultJwtParserClaims claims Jwts.parser()// 设置签名的秘钥.setSigningKey(secretKey.getBytes(StandardCharsets.UTF_8))// 设置需要解析的jwt.parseClaimsJws(token).getBody();return claims;}
http://www.w-s-a.com/news/594950/

相关文章:

  • 无证做音频网站违法吗智能建站加盟电话
  • 鹿泉专业网站建设做网站为什么要建站点
  • 加强网站建设和维护工作新闻大全
  • 红鱼洞水库建设管理局网站左右左布局网站建设
  • 手机网站建设地址做网站公
  • 贵州建设厅网站首页网络公司除了做网站
  • 运动鞋建设网站前的市场分析wordpress 搜索框代码
  • app开发网站开发教程平台网站开发的税率
  • 百度网站优化排名加强服务保障满足群众急需i
  • 宁夏建设职业技术学院网站安徽网站优化建设
  • 四川关于工程建设网站硬盘做网站空间
  • 桂林网站制作培训学校外包seo公司
  • 莱州网站建设方案北京装修公司口碑
  • 大型网站建设济南兴田德润团队怎么样韩国女足出线了吗
  • 南通做网站找谁重庆网络推广网站推广
  • ps网站主页按钮怎么做怎样做网站的用户分析
  • 哪个网站做黑色星期五订酒店活动公司网络营销推广软件
  • 岳阳新网网站建设有限公司网页设计基础考试题目
  • 辽宁响应式网站费用海外平台有哪些
  • 杨凌规划建设局网站网站后台建设怎么进入
  • 有赞商城网站建设企业管理咨询是做什么的
  • 提供衡水网站建设中国石化工程建设有限公司邮政编码
  • 大芬地铁站附近做网站工业设计公司报价
  • 建设网站最强永年网站建设
  • 网站分站代理加盟wordpress国内工作室主题
  • 东营远见网站建设公司服装网站建设内容
  • 互助平台网站建设费用百度seo优化怎么做
  • lol英雄介绍网站模板工商局网上注册
  • 电商网站运营策划什么样的网站容易做seo
  • 网站备案需要什么流程怎么创建小程序卖东西