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

淘客网站 wordpress网站app建设方案

淘客网站 wordpress,网站app建设方案,网站开发流程三部分,小程序码JWT#xff08;JSON Web Token#xff09; 是一种用于在各方之间传输信息的紧凑、安全的方式#xff0c;常用于身份验证和授权。它以令牌的形式将用户信息编码后传输#xff0c;可以确保数据的完整性和安全性。 1.JWT的结构 JWT 是一个基于 JSON 的令牌#xff0c;由三部…         JWTJSON Web Token 是一种用于在各方之间传输信息的紧凑、安全的方式常用于身份验证和授权。它以令牌的形式将用户信息编码后传输可以确保数据的完整性和安全性。 1.JWT的结构 JWT 是一个基于 JSON 的令牌由三部分组成通过点号 (.) 分隔 header.payload.signature 每部分都是经过 Base64Url 编码的字符串分别对应以下三个部分 1Header头部 头部包含令牌的元数据通常包括令牌类型和签名算法。 例子 {   alg: HS256,   typ: JWT } alg: 签名使用的算法如 HMAC SHA256。 typ: 声明令牌类型为 JWT。 2Payload有效载荷 有效载荷包含用户的声明claims也就是实际传输的数据。它通常包含身份验证或授权所需的信息。 {   sub: 1234567890,   name: John Doe,   admin: true,   iat: 1516239022 } 常见的标准声明 iss (issuer)签发者sub (subject)面向的用户aud (audience)接收的受众exp (expiration)过期时间iat (issued at)签发时间nbf (not before)生效时间 自定义声明可以根据需求添加任何信息。 3Signature签名 签名用于验证令牌的真实性并确保令牌在传输过程中没有被篡改。 签名的生成方式 HMACSHA256(   base64UrlEncode(header) . base64UrlEncode(payload),   secret ) 签名使用头部中声明的算法和一个秘密密钥secret key生成。 2.JWT的工作流程 2.1.生成JWT 用户登录后服务器生成一个包含用户身份信息的 JWT使用密钥对其进行签名。 2.2.客户端存储JWT 生成的 JWT 会返回给客户端客户端通常将其存储在浏览器的 localStorage 或 sessionStorage 中或者存储在 Cookie 中。 2.3.客户端请求时携带JWT 在后续的请求中客户端将 JWT 附加在请求头的 Authorization 字段中 Authorization: Bearer token 2.4.服务器验证JWT 服务器接收到 JWT 后会使用相同的密钥对签名进行验证确保令牌的完整性和真实性。 如果 JWT 有效服务器允许访问资源如果令牌无效或过期返回 401 未授权状态。 3.JWT的优势 1无状态JWT 是无状态的所有信息都保存在令牌中服务器不需要维护会话数据。 2跨域支持由于 JWT 不依赖于特定的存储机制适合跨域认证。 3紧凑性JWT 的结构紧凑便于在 URL、HTTP 请求头等地方传输。 4灵活性JWT 可以包含任意声明支持灵活的身份和权限管理。 4.JWT的使用场景 1身份认证用户登录后生成 JWT之后每次请求时验证 JWT 以实现认证。 2授权通过 JWT 传递用户权限信息确保用户只能访问被授权的资源。 3信息传递JWT 可以安全地传输一些加密的信息。 5. JWT 的安全性注意事项 签名算法建议使用强大的签名算法如 HS256 或 RS256避免使用不安全的算法。 HTTPSJWT 中可能包含敏感信息传输时必须使用 HTTPS 来防止令牌被截获。 令牌过期为 JWT 设置合理的过期时间exp 声明防止长期有效的令牌被滥用。 刷新令牌使用短期有效的访问令牌和长期有效的刷新令牌Refresh Token机制以便在访问令牌过期后请求新的令牌。 6.Java代码实现生成和验证JWT 6.1.添加Maven依赖 如果你使用 Maven 构建项目首先在 pom.xml 中添加 JJWT 库的依赖 dependency     groupIdio.jsonwebtoken/groupId     artifactIdjjwt-api/artifactId     version0.11.5/version /dependency dependency     groupIdio.jsonwebtoken/groupId     artifactIdjjwt-impl/artifactId     version0.11.5/version     scoperuntime/scope /dependency dependency     groupIdio.jsonwebtoken/groupId     artifactIdjjwt-jackson/artifactId     version0.11.5/version /dependency 6.2.生成和验证 JWT 的 Java 代码 package com.me.mengyu.auth.net.jwt; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.Claims; import io.jsonwebtoken.security.Keys; import javax.crypto.SecretKey; import java.util.Date; public class JwtExample {     // 生成一个密钥用于签名     private static final SecretKey SECRET_KEY Keys.secretKeyFor(SignatureAlgorithm.HS256);     // 创建 JWT     public static String createJwt(String subject) {         // 设置 JWT 过期时间         long expirationTime 1000 * 60 * 60; // 1 小时         return Jwts.builder()                 .setSubject(subject) // 设置主题可以是用户ID等信息                 .setIssuer(your-app) // 设置发行者                 .setIssuedAt(new Date()) // 设置签发时间                 .setExpiration(new Date(System.currentTimeMillis() expirationTime)) // 设置过期时间                 .signWith(SECRET_KEY) // 使用密钥签名                 .compact(); // 生成 JWT     }     // 验证 JWT 并提取信息     public static void validateJwt(String token) {         try {             // 解析 JWT             Claims claims Jwts.parserBuilder()                     .setSigningKey(SECRET_KEY) // 设置密钥                     .build()                     .parseClaimsJws(token) // 验证令牌                     .getBody();             // 输出从 JWT 中提取的信息             System.out.println(Subject: claims.getSubject());             System.out.println(Issuer: claims.getIssuer());             System.out.println(Expiration: claims.getExpiration());         } catch (Exception e) {             System.out.println(Invalid JWT token: e.getMessage());         }     }     public static void main(String[] args) {         // 创建 JWT         String jwt createJwt(1234567890); // 这里的主题可以是用户的ID         System.out.println(Generated JWT: jwt);         // 验证 JWT         validateJwt(jwt);     } } 代码说明 1createJwt 方法生成一个带有签名的 JWT包含用户身份信息subject签发者issuer签发时间和过期时间。使用 HS256 算法和一个密钥签名。 2) validateJwt 方法验证 JWT 是否有效并从中提取 claims 信息如 subjectissuerexpiration。如果令牌无效例如过期或签名不匹配会抛出异常。 运行结果示例: Generated JWT: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaXNzIjoieW91ci1hcHAiLCJpYXQiOjE3MjcwMTcyNDYsImV4cCI6MTcyNzAyMDg0Nn0.tNylO-O5Jbazd0QzR85X8OB7p1mDy0IGtyl97Ro0FYQ Subject: 1234567890 Issuer: your-app Expiration: Mon Sep 23 00:00:46 CST 2024 说明 生成的 JWT格式为 header.payload.signature其中 payload 包含 sub用户ID、iss发行者等信息。 验证输出 Subject、Issuer 和 Expiration表明 JWT 验证成功并解析出了信息。 6.3.注意事项 1密钥管理在生产环境中应该安全地管理密钥避免泄露。 2过期时间务必设置合理的过期时间防止长时间有效的令牌带来安全风险。 3异常处理应当详细处理验证失败的情况比如过期令牌、签名错误等。
http://www.hkea.cn/news/14571178/

相关文章:

  • 万网网站后台登陆网页设计简单基础页面模板
  • 四川成都高端网站建设有创意的文创产品
  • app网站开发长沙同城推广方法
  • 网站建设四网合一网站关键词如何设置
  • 全国分站seo做百度推广需要有网站吗
  • 做板材外贸一般用哪个网站网站代码开发方式
  • 北京网站建设公司大全网站设计有哪些创新点
  • 广东省网站备案要多久网站托管公司如何选择
  • 网站制作程序下载网站链接收费怎么做的
  • 南宁市网站开发公司电话oa软件开发公司
  • 建设一个普通网站需要多少钱网络营销和直播营销的区别
  • 网上支付网站怎摸做惠东东莞网站建设
  • 网站建设 竞赛 方案wordpress不能启动怎么解决方法
  • 网站制作论文网站开发项目挣钱吗
  • 美橙云建站网页特效模板
  • 域控制网站访问php c2c网站开发的 书
  • 推荐常州网站推广什么建网站免费
  • 昆明做网站建设技巧公司负面口碑营销案例
  • 济宁北湖建设集团网站网站的专业
  • 中资源 网站域名解析国外做动运服装的网站
  • 什么网站可以做私房菜外卖网站设计优缺点分析
  • 上饶市网站建设ftp制作网站
  • 免费素材网站图库wordpress 微博页面
  • wordpress中文站cn免费h5模板
  • 创意网站建设设计公司十大外包公司
  • 北京国都建设集团网站企业建站都有什么网站
  • 百度seo整站优化wordpress后台白屏
  • 青海做网站找谁百度域名是什么意思
  • 西安h5响应式网站WordPress禁用f12
  • 网站建设阐述录播教育系统网站建设费用