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

做网站衡水交通网站建设

做网站衡水,交通网站建设,现在做网络推广网站建设怎么样,苏州现在可以正常进入吗1. 问题引入 在登录功能的实现中 传统思路#xff1a; 登录页面时把用户名和密码提交给服务器服务器验证用户名和密码#xff0c;并把检验结果返回给后端如果密码正确#xff0c;则在服务器端创建 session#xff0c;通过 cookie 把 session id 返回给浏览器 但是正常情…1. 问题引入 在登录功能的实现中 传统思路 登录页面时把用户名和密码提交给服务器服务器验证用户名和密码并把检验结果返回给后端如果密码正确则在服务器端创建 session通过 cookie 把 session id 返回给浏览器 但是正常情况下一个 web 应用是部署到多个服务器上的通过 Nginx 等进行负载均衡此时就可能出现这样的情况用户登录请求之后把 session 存储在了第一台服务器上但是后续的请求操作例如查询等就可能会转发到第二台服务器上但是第二台服务器没有存储该用户的 session就会让用户重新登录这肯定是不合理的 解决方案 对于服务端来说上述出现的问题是由于 session 是默认存储在内存中的服务器重启之后session 就丢失了如果把 session 存储在 Redis 中那么就能共同访问并且不丢失数据。第二种方案就是引入 token也就是令牌用户登录之后服务器对账号和密码进行验证验证通过就生成一个令牌并返回给客户端客户端收到令牌之后把令牌存储起来之后再发起其他请求就带着令牌处理请求的服务器校验令牌是否有效即可 引入令牌之后就解决了集群环境下的认证问题并且减轻了服务器的存储压力令牌由客户端存储服务器只负责生成和校验 2. JWT 的介绍 官网JSON Web Tokens - jwt.io JWT 令牌本身是一个字符串包括头部载荷签名三部分将信息作为 JSON 对象进行传输 头部包括令牌的类型和使用的哈希算法 载荷存储的有效信息为自定义内容 签名用于防止 JWT 内容被篡改并不是防止被解析只要被篡改令牌就会失效 3. JWT 的使用 首先需要导入对应的依赖 dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-api/artifactIdversion0.11.5/version /dependency !-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-impl -- dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-impl/artifactIdversion0.11.5/versionscoperuntime/scope /dependency dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-jackson/artifactId !-- or jjwt-gson if Gson is preferred --version0.11.5/versionscoperuntime/scope /dependency 接下来就可以测试生成 token 了 //生成token Test public void getToken() {String secret abcdefghijklmnopqrstuvwxyz;//设置key用于签名Key key Keys.hmacShaKeyFor(Decoders.BASE64.decode(secret));//载荷MapString, Object map new HashMap();map.put(name, zhangsan);map.put(id, 1);//生成tokenString compact Jwts.builder().setClaims(map).signWith(key).compact();System.out.println(compact); } 此时报出了一个错误要求使用提供的方法来生成 key 接下来看怎么生成 key Test public void genKey(){//生成keySecretKey secretKey Keys.secretKeyFor(SignatureAlgorithm.HS256);//转化为String类型String enconde Encoders.BASE64.encode(secretKey.getEncoded());System.out.println(enconde); } 生成之后就可以替换掉原来自定义的字符串了再去生成 token 在官网中也是可以校验成功的 接下来看怎么通过方法来进行 token 的校验 //校验token Test public void parseToken(){String token eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiemhhbmdzYW4iLCJpZCI6MX0.xllreml0yt9aQDXSQe0ngQb45VpV5843rOEKdDQ4QCk;//JWT解析器JwtParser build Jwts.parserBuilder().setSigningKey(key).build();//对创建好的token进行解析Object body build.parse(token).getBody();System.out.println(body); } 如果说签名错了就无法正确解析了 这就可以通过 try- catch 进行逻辑处理了 根据这些就可以写一个工具类服务端就可以直接调用了 Slf4j public class JwtUtil {//设置key用于签名private final static String secret WHMgtn1tTrIxc00ys17ukp65bf2KZ0wrihyqynY18F8sssss;private final static Key key Keys.hmacShaKeyFor(Decoders.BASE64.decode(secret));private final static long expiration 24 * 60 * 60 * 1000;//生成tokenpublic static String getToken(MapString, Object map) {return Jwts.builder().setClaims(map).setExpiration(new Date(System.currentTimeMillis() expiration))//设置过期时间.setIssuedAt(new Date()) //设置签发日期.signWith(key).compact();}//校验tokenpublic static Claims parseToken(String token) {if (!StringUtils.hasLength(token)) {return null;}//JWT解析器JwtParser build Jwts.parserBuilder().setSigningKey(key).build();//对创建好的token进行解析Claims body null;try {body build.parseClaimsJws(token).getBody();return body;} catch (SignatureException e) {log.error(token非法...e{}, e.getMessage());} catch (ExpiredJwtException e) {log.error(token过期... e{}, e.getMessage());} catch (Exception e) {log.error(token解析失败e{}, e.getMessage());}return body;} }
http://www.w-s-a.com/news/603162/

相关文章:

  • 规模以上工业企业的标准是什么洛阳霞光seo网络公司
  • 怎样用文本建一个网站做美容美发学校网站公司
  • 南宁企业网站建设制作芜湖网站建设推广
  • 泉州市建设局网站公示深圳建站公司好坏
  • 如何搭建网站教程一个人制作网站
  • 网站开发专业都有哪些课程广州安全教育平台账号找回
  • 网站调整方案适合平面设计师的网站
  • 免费服务器建立网站用html5做的旅游网站代码
  • 学校英语网站栏目名称WordPress禁用邮件注册
  • 手机qq网页版网站沧州手机网站开发
  • 深圳罗湖网站设计公司建设的网站属于无形资产吗
  • 网站开发python西安网站建站品牌
  • 网站开发商标属于哪一类做网站还有钱赚吗
  • 做设计的搜素材上什么网站好设计公司画册设计哪家好
  • 视频网站开发需要什么语言做ui设计一年后年薪多少
  • 网站服务器维护费用统一企业官方网站
  • 网站如何调用手机淘宝做淘宝客呼和浩特网站运营公司
  • 做推广可以上那些网站网页游戏排行榜2014前十名
  • 国外网站备案流程企业网站 流程
  • 重庆网站建设letide童程童美少儿收费价目表
  • 苏州建站仿站东莞排名推广
  • 大中小网站的区分wordpress个人主页主题
  • 商务网站建设的可行性分析包括小程序源码网免费
  • 永州网站建设收费标准重庆网站建设公司夹夹虫专业
  • python做网站多少钱wordpress 2.8
  • 深圳网站平台网站开发工作程序怎么写
  • 自己可以接单做网站吗wordpress 添加自定义按钮
  • 网站首页权重宣传页制作
  • 智能网站建设软件有哪些方面网页的建设
  • 石铜路网站建设生鲜电商网站开发