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

沭阳网站建设方案建网站 发信息 做推广

沭阳网站建设方案,建网站 发信息 做推广,医药行业网站建设,大兴安岭商城网站开发设计概述 JWT#xff0c;Java Web Token#xff0c;通过 JSON 形式作为 Web 应用中的令牌#xff0c;用于在各方之间安全地将信息作为 JSON 对象传输#xff0c;在数据传输过程中还可以完成数据加密、签名等相关处理 JWT 的作用如下#xff1a; 授权#xff1a;一旦用户登… 概述 JWTJava Web Token通过 JSON 形式作为 Web 应用中的令牌用于在各方之间安全地将信息作为 JSON 对象传输在数据传输过程中还可以完成数据加密、签名等相关处理 JWT 的作用如下 授权一旦用户登录每个后续请求将包括 JWT从而允许用户访问该令牌允许的路由服务和资源信息交换JSON Web Token 是在各方之间安全地传输信息的好方法因为可以对 JWT 进行签名此外由于签名是使用标头和有效负载计算的因此还可以验证内容是否篡改 传统的 Session 认证 1. 认证方式 http 协议本身是一种无状态协议这就意味着如果用户向我们的应用提供了用户名和密码进行认证那么下次请求时还需再作一次认证。因为根据 http 协议我们并不知道是哪个用户发出的请求所以为了让应用能识别是哪个用户发出的请求我们只能在服务存储一份用户登录的信息这份登录信息会在响应传递给浏览器告诉其保存为 cookie以便下次请求时发送回来这样我们就能识别请求来自哪个用户了 2. 缺点 每个用户经过认证后都要在服务端做一次记录以方便下次鉴别。通常而言session 都是保存在内存中的随着认证用户的增多服务端的开销也会明显增大用户认证之后服务端做认证记录如果认证的记录被保存到内存中就意味着下次用户请求还得访问该服务器才能拿到授权的资源在分布式应用上相应的限制了负载均衡器的能力也就意味着限制了应用的扩展能力基于 cookie 进行用户识别cookie 一旦被捕获用户就会很容易受到跨站请求伪造的攻击在前后端分离时增加了部署的复杂性 JWT 认证 1. 认证方式 前端通过 Web 表单将自己的用户名和密码发送给后端的接口这一过程一般是 http post 请求建议的方式是通过 SSL 加密的传输https从而避免敏感信息被嗅探后端核对用户名和密码成功后将用户的 id 等其他信息作为 JWT Payload负载将其与头部分别进行 Base64 编码拼接后签名形成一个 JWT Token后端将 JWT 字符串作为登录成功的返回结果返回前端可以将返回的结果保存在本地缓存上退出登录时前端删除保存的 JWT 即可前端在每次请求后端带回 JWT后端检查是否存在如验证 JWT 的有效性检查签名是否正确检查 Token 是否过期检查 Token 接收方是否是自己验证通过后后端使用 JWT 中包含的用户信息进行其他逻辑操作返回相应结果 2. 优点 简洁可以通过 URL、POST 参数或者在 HTTP Header 发送因为数据量小传输速度快自包含负载中包含了所有用户需要的信息避免多次查询数据库Token 以加密形式保存在客户端原则上任何 web 形式都支持不需要在服务端保存会话信息特别适用于分布式微服务 JWT 结构 通常 JWT 如下所示xxxxx.yyyyy.zzzzz 标头Header标头一般由两部分组成令牌的类型和所使用的签名算法标头使用 Base64 编码 {alg:HS256,typ:JWT }有效负载payload令牌的第二部分是有效负载其中包含声明。声明是有关实体通常是用户和其他数据的声明。同样使用 Base64 编码。不建议放入用户的敏感信息 {sub:12345678,name:john,admin:true,... }签名SignatureSignature 需要使用编码后的 Header 和 Payload 以及我们提供的一个密钥然后使用 Header 中指定签名算法进行签名。签名的作用是保证 JWT 没有被篡改过如HMACSHA256(base64UrlEncode(header) . base64UrlEncode(payload),secret) 客户端收到服务端发送的 token 后再次请求服务端需要带上 token此时 token 包含三部分经过 Base64 编码的 Header、经过 Base64 编码的 Payload 和加密后的签名服务端用自己保存的 secret 与客户端发送的 Header、Payload 运算如果结果和客户端带回来的签名不一致则验证失败 JWT 使用 引入依赖 dependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.4.0/version /dependency生成 token Calendar instance Calendar.getInstance(); instance.add(Calendar.SECOND, 20); MapString, Object map new HashMap(); String token JWT.create().withHeader(map) // header.withClaim(userId, 21) // payload.withClaim(username, yeeq).withExpiresAt(instance.getTime()) // 指定令牌的过期时间.sign(Algorithm.HMAC256(FAWF2#!F)); // 签名并指定密钥根据令牌和签名解析数据 // 创建验证对 JWTVerifier jwtVerifier JWT.require(Algorithm.HMAC256(FAWF2#!F)).build(); // 解码后的信息 DecodedJWT verify jwtVerifier.verify(eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MDAyNTQ4NzIsInVzZXJJZCI6MjEsInVzZXJuYW1lIjoieWVlcSJ9.jo_6gKThSXUcEfH1e9bu7at9lm2zmdupwiYvMUWopls); System.out.println(verify.getClaim(userId).asInt()); System.out.println(verify.getClaim(username).asString());常见异常信息 SignatureVerificationException签名不一致异常TokenExpiredException令牌过期异常AlgorithmMismatchException算法不匹配异常InvalidClaimException失效的 payload 异常 JWT 封装工具类 一般结合拦截器或者网关完成认证 public class JWTUtils {private static final String SIGN FAWF2#!F;/*** 生成 token* param map payload 的信息* return token*/public static String getToken(MapString, String map) {Calendar instance Calendar.getInstance();instance.add(Calendar.DATE, 7);JWTCreator.Builder builder JWT.create();// 创建 payloadmap.forEach((k, v) - {builder.withClaim(k, v);});String token builder.withExpiresAt(instance.getTime()) // 指定令牌的过期时间.sign(Algorithm.HMAC256(SIGN)); // 签名并指定密钥return token;}/*** 验证 token 的合法性* param token token*/public static void verifyJWT(String token) {JWT.require(Algorithm.HMAC256(SIGN)).build().verify(token);}/*** 获取 token 的信息* return token 的信息*/public static DecodedJWT getTokenInfo(String token) {DecodedJWT verify JWT.require(Algorithm.HMAC256(SIGN)).build().verify(token);return verify;} }
http://www.hkea.cn/news/14318562/

相关文章:

  • 谷歌怎么做公司网站如何做vip影视网站
  • 杭州做网站哪个公司好天津网站定制
  • 外贸网站模板 外贸网站制作网上购物网站开发报价
  • 企业网站seo哪里好wordpress 数字不连续
  • 网站建设时间进度表ai效果图网站
  • 海口网站建设推广pre_get_posts wordpress
  • 用别人网站做app的危害免费建设网站
  • 基于php的网站开发设计本地网站更新不了 vps登陆可以
  • 网站建设seo优化推广展陈公司排名
  • 百度网站域名费一年多少钱上海市建设工程安全协会网站
  • 免费学服装设计的网站网站主机是什么意思
  • 郑州网站制作哪家好一级a做爰片迅雷网站
  • 做网站和编程有关系吗大连网站建设仟亿科技
  • 百度风云榜电视剧排行榜seo技术教程博客
  • 哪家微信网站建设好直播互动
  • 织梦视频网站源码wordpress 微信 登陆
  • 网站怎么做跳转页面网站建设广东
  • 南昌商城网站建设上海建网站价格
  • 焦作建设银行网站什么职位做网站
  • 网站建设规划书中的技术可行性不包括企业网站cms源码
  • 建设自己的网站需要哪些步骤下载优化大师
  • 购物网站风格昆明网站推广公司
  • 深圳做网站公司哪家比较好网站静态页面做网站
  • wordpress 下载网站wordpress event
  • 响应式视频网站模板下载网站建设发展
  • 佛山网站建设模板河南建设工程信息网官网首页
  • 三国曹魏古城建设网站建设网站的企业费用
  • 第三方商城网站建设天津自助建站
  • 安徽伟诚建设工程有限公司网站黄骅贴吧2020招聘信息
  • 怎么做电力设计公司网站宁波自助建站公司