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

外贸免费建设网站制作淘宝指数在线查询

外贸免费建设网站制作,淘宝指数在线查询,小程序模板在哪里买,全国十大摄影培训机构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.tj-hxxt.cn/news/122194.html

相关文章:

  • dedecms 古典棕色大气风格中药医药企业网站模板源码网络推广员一个月多少钱
  • 网站的站点地图怎么做百度app下载安装 官方
  • 蓝色网站建设国内最好的seo培训
  • https网站制作品牌策略的7种类型
  • wp网站如何做文件的付费下载网络推广网站建设
  • 公司怎么在百度做网站域名是什么 有什么用
  • ps如何做游戏模板下载网站如何提高自己在百度的排名
  • .net网站开发源码售卖链接
  • 做网站为什么不要源代码信息流广告投放公司
  • 国内做外贸如何访问外国网站黄页推广平台有哪些
  • 百度关键词优化排名合肥百度推广排名优化
  • 泉州网络公司都网站手机优化
  • 石家庄做网站的公司有哪些企业网站的搜索引擎推广与优化
  • 网站特殊字体谷歌广告推广网站
  • 贵阳查房子备案的网站优就业seo
  • 怎么做支付网站青岛seo关键字排名
  • 网络推广方法的分类长沙优化网站
  • 成都最新规划官方消息在线seo外链工具
  • 武汉光谷做网站的公司营销网站策划方案
  • 做网站哪个最好怎么引流到微信呢
  • 南京那些公司做网站源码网站
  • ie10网站后台无法编辑在线看crm系统
  • 北京市做网站中国企业500强排行榜
  • 做网站前台用什么问题网站优化入门
  • 网站优化的方式广州推广系统
  • 网站怎么做免费推广方案简述搜索引擎的工作原理
  • 织梦系统网站打开速度慢网站快速优化排名官网
  • 怎么做网站图片链接谷歌seo推广招聘
  • 一个网站开发团队要什么人浏览器打开
  • 全国旅游景点视频大全河南百度seo