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

珠海网站制作公司网站seo课程

珠海网站制作公司,网站seo课程,湖南建设网站,浙江政府网站大建设JWT JSON Web Token(JSON Web令牌) 是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…

JWT

JSON Web Token(JSON Web令牌)

是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。

通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。

JWT登录流程

在这里插入图片描述
使用了JWT技术

流程:

1.前端通过表单的方式将用户的登录信息发送到后端

2.后端对登录的信息进行检验,合法的话生成JWT并与结果一起返回给前端

3.前端接收到返回结果进行响应并将JWT保存,前端可以将返回的结果保存在localStorage(浏览器本地缓存)或sessionStorage(session缓存)上,退出登录时前端删除保存的JWT即可

4.后续前端每次请求携带JWT进行,后端检查JWT 的合法性存在验证JWT的有效性。例如,检查签名是否正确﹔检查Token是否过期;检查Token的接收方是否是自己

5.验证通过后后端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果。

使用练习

1.引入依赖

<!--引入JWT-->
<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.0</version>
</dependency>

2.登录成功后,生成jwt令牌

  Map<String, 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, Map<String, 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.mnyf.cn/news/52079.html

相关文章:

  • 青浦网站建设公司百度竞价广告怎么收费
  • java网站开发是干什么广州营销课程培训班
  • 网站建设与app开发婚恋网站排名前10
  • 商务网站规划与建设国际军事最新头条新闻
  • 网站开发文案模板seo排名怎么看
  • 云梦网站怎么做浮窗湖南网络推广排名
  • 郑州汉狮做网站网络公司如何在手机上开自己的网站
  • 权威发布疫情最新消息合肥seo报价
  • 广西北海联友建设网站管理武汉网络推广seo
  • shopify可以用来做B2B网站吗域名停靠网页推广大全2023
  • 爬虫wordpress潍坊seo教程
  • qq是谁的公司开发的企业网站关键词优化
  • 域名解析查询方法关于进一步优化落实疫情防控措施
  • 网络班级网站建设北京seo实战培训班
  • 怎么修改wordpress模板文件seo在线优化工具
  • 个人备案的网站可以做什么企业网站推广渠道
  • 短租网站那家做的好处电商关键词seo排名
  • 广东网站建设系统武汉竞价托管公司
  • 网站后台数据应该怎么做网络推广外包要多少钱
  • 哪里有做网站设计seo快排优化
  • 太原网站推广怎么做北京百度推广客服电话多少
  • 徐州网站制作机构快速排名推荐
  • 做网站的公司有哪些网店推广的方式
  • 多元 集团 网站建设方案深圳推广
  • 如何在wordpress首页显示文章列表网站优化的主要内容
  • 医疗生物科技 网站建设seo的中文含义是
  • 音乐中文网站模板营销策略案例
  • 广西南宁市网站建设服务中心济南做网站公司哪家好
  • 如何做网站解析今日国际新闻热点
  • 怎么样做销往非洲太阳能板的网站网络精准推广