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

做任务赚钱的网站有哪些白城seo

做任务赚钱的网站有哪些,白城seo,每平每屋设计家官网,博客类网站源码一、前言 使用一些用户不友好的项目时,会发现,每一次进入网站,我们都要重新登录。 这是为什么呢? 现代多采用前后端分离的项目架构,这种架构,前后端使用不同的服务器,两个服务器上存储的信息不…

一、前言

使用一些用户不友好的项目时,会发现,每一次进入网站,我们都要重新登录
这是为什么呢?
现代多采用前后端分离的项目架构,这种架构,前后端使用不同的服务器,两个服务器上存储的信息不一致。
用户一般直接访问的,是前端服务器。
在后端,为了避免恶意攻击,开发者必须考虑身份验证的问题。
简单点说,你必须只让允许的人进来
解决方案很多,过去常用的是cookie,后来为了安全,又延伸出一个session。
再后来,由于分布式开发的需求和性能的需求,必须有一个统一管理的验证机制,这就是出现了token验证
不过,token信息存储在数据库中,且无结构化信息,使用起来相对麻烦。
我们需要一个机制,不存储在数据库中,并且能够方便访问。
这就是衍生出的JWT,这也是今天话题的主角。

二、JWT的基础信息

  1. JWT令牌的本质,就是一段加密过的字符串
  2. JWT令牌全称叫Json Web Token。
  3. JWT由3个部分组成:头部header、负载payload、签名signature。
  4. JWT的头部存储配置信息。
  5. JWT的负载存储真正传输的数据
  6. JWT的签名,是认证的核心,保证其不被修改。

三、JWT的头部header

header存储配置信息,一般有2个:

  • typ : jwt;类型,表示令牌种类,一般是jwt
  • alg:HS256,加密算法,种类比较多。

四、JWT的负载payload

这是存储数据的区域,具体内容由开发者自定义,一般会写:

  • subject主题:表示这个jwt令牌干什么用的,可以自定义。
  • exp:过期时间,这个最重要,一般的jwt令牌都会有。
  • 其它:比如用户的id,使得JWT一定唯一。

五、JWT的签名signature

签名是最重要的验证机制,它由头部、负载和密钥三部分信息,经过算法加密而成,具体内容不确定,调用算法即可。
密钥:密钥可以自定义或随机生成,但是要符合一定规则。【密钥一般是一段字符串,如果使用工具生成,也可以是一个SecretKey包装类】
比如:使用HS256算法加密,密钥就必须在256bits以上。【其它的,视具体算法确定,一般都是长度规则】
密钥必须妥善保管,这是保证jwt令牌唯一的重要数据。

六、JWT是如何保证唯一的

在负载payload中,一般会有几个属性,能够唯一标识用户。
比如用户id、用户name、用户手机号。
如果这个用户jwt丢失,重新访问后端服务器,由于过期时间一般固定,也能保证jwt唯一,就算不唯一,只要满足规则,其访问也不会出错。

七、JWTUtil工具类如何构建

经过上面的学习,我们大概知道jwt是什么了,那么,就该了解它的使用方法了。

第一,流程

jwt是我们后端服务器生成的一段字符串,所以要有创建这一步骤。
当前端把jwt令牌传来时,我们要把它解析成可以理解的格式,所以也要有解析这一步骤。
过滤器的构建,是Spring MVC的内容,在此不介绍。
忽略过滤器的构建,我们只需要做两件事:创建jwt和解析jwt

第二,创建jwt【负载根据需求自己设置】

由于jwt有3个部分,所以要分别构建头部、负载和签名。
代码基本固定,为:

public static String createJWT(String id){// 设定jwt的头部、负载,并进行签名和打包链接// jwt比较复杂,所以用builder构建JwtBuilder builder = Jwts.builder();// 设定头部的方法setHeadParamString res = builder.setHeaderParam("alg", "HS256").setHeaderParam("typ", "jwt")// 设定负载的方法,claim.claim("username","tom").claim("id", id).claim("permission", 0)// 常用的一些负载,允许用内置方法设置.setSubject("test_admin").setExpiration(new Date(System.currentTimeMillis()+ttlMillis))// 签名方法,指定加密算法HS256,和密钥SECRET_KEY.signWith(SignatureAlgorithm.HS256, SECRET_KEY)// compact是将三个部分连接起来,并返回一个字符串。【3部分通过.号连接】.compact();// 转化为字符串return res;
}

第三,解析JWT令牌

由于签名用于确保信息有效,头部是配置信息,所以对于业务逻辑,最关键的是负载payload。
在jwt机制中,payload采用Claims类存储。
Claims类:一个数据类,本质就是一个Map结构。
通过key,得到value。
由于JWTUtil类只创建、解析jwt,而不进行其它的业务逻辑,所以应该把Claims传递给其它方法处理。
当然,为了方便,我们可以将Claims的数据拿出来,存储在一个Map中,再交给其它方法处理。
固定的代码为

public static Claims parseJWT(String jwt){// 创建JWTPaser实例JwtParser jwtParser = Jwts.parser();// 按照密钥、jwt令牌解密Jws<Claims> claimsJws = jwtParser.setSigningKey(SECRET_KEY).parseClaimsJws(jwt);// claims类有一个Map,存储一对一的数据Claims claims = claimsJws.getBody();// 返回给上级处理return claims;
}

八、结语

我是蚊子码农,如有补充,欢迎在评论区留言。个人的知识体系可能没有那么完善,希望各位多多指正,谢谢大家。

http://www.yidumall.com/news/84570.html

相关文章:

  • 上海市企业信用信息公示系统官网搜索引擎优化实训报告
  • 株洲网站建设报价方案如何做市场推广方案
  • 东莞市保安公司排名seo最新技巧
  • 网站建设学什么上海网站排名优化怎么做
  • 标准网站建设合同常州seo关键词排名
  • 武警部门建设网站的好处手机做网页的软件
  • 景区网站建设策划给企业做网站的公司
  • 做网站创业流程图如何对网站进行推广
  • 服装批发网站源码百度浏览器app下载
  • 网站建设费的会计分录谷歌paypal官网入口
  • 网站上报名系统怎么做搜索引擎优化技巧
  • 做视频网站需要什么证网店怎么推广和宣传
  • 经营范围 网站开发百度客服怎么联系
  • 深圳响应式网站建设公司网络黄页推广软件
  • 北京网站建设公司案例来几个关键词兄弟们
  • b2b电子商务网站有哪些是免费的it培训机构推荐
  • web服务器建设网站seo是什么意思?
  • 网站开发网站设计的标准做app推广去哪找商家
  • 简述网站制作流程图优化大师下载
  • 学校网站建设新闻十大免费网站推广平台
  • 图文网站模板app优化
  • 备案 网站建设方案书巨量千川广告投放平台
  • 网站 f型市场营销比较好写的论文题目
  • jquery做背景的网站赏析百度免费seo
  • 可以开发哪些网站站长查询工具
  • 网站建设优化网站排名万能软文范例800字
  • 广州在线网站制作推荐关键词优化推广排名
  • 北京环评在那个网站上做网络营销策划的内容
  • 上海最专业的网站建设公司排名会计培训班要多少钱一般要学多久
  • 网页设计与制作模板免费阿里网站seo