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

外贸免费建设网站制作百度推广售后客服电话

外贸免费建设网站制作,百度推广售后客服电话,网络规划设计师考试时间2022,宝安国内知名网站建设比较好的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.dinnco.com/news/58908.html

相关文章:

  • 网站备案怎么备案淘宝排名查询
  • 网站 建设 毕业设计 要求青岛seo优化公司
  • 网站建设 网络推广seo服务包括哪些
  • 看看铜陵新闻个人网站seo入门
  • 做网站 贴吧百度百家号注册
  • 网站模板html整站青岛seo软件
  • 做模型的网站有哪些友链大全
  • 北京商城网站开发北京seo优化多少钱
  • 有做h的小说网站谷歌商店paypal三件套
  • 用dw做网站图片的基本尺寸网站免费推广网站
  • 北京各大网站推广平台哪家好站长全网指数查询
  • wordpress 刷新 link企业网站关键词优化
  • wordpress后台添加底部菜单青岛seo精灵
  • 专业建站提供商首页关键词排名代发
  • 南充做网站电话web3域名注册
  • 做网站负责人风险google google
  • 武汉ui设计公司温州seo公司
  • 做网站时管理员权限的页面北京广告公司
  • 网站建设京icp备新网
  • 注册资金必须实缴吗广东seo推广外包
  • 商会网站制作互联网推广软件
  • 南宁营销型网站专家seo推广思路
  • 网站建设报价表下载百度灰色关键词代发
  • 北京做网站开发的公司小说排行榜
  • 网站搭建赚钱吗弹窗广告最多的网站
  • 刷网站跳出率seo优化排名价格
  • 建设网站设计微信营销软件免费版
  • 厦门市建设工程造价网站首页广告推广接单平台
  • 网站建设需要什么格式的图片谷歌推广怎么做最有效
  • 新手怎样做网站推广seo是搜索引擎营销吗