hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 君子好学,自强不息!

JWT 是干什么?_后端开发

2020-06-29后端开发ki4网7°c
A+ A-

一起看看php7的重大新特性_后端开发

截止到目前为止,PHP官方已经发布了php7的RC5版本,现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7会有那些主要的变化。

JWT是目前流行的跨域认证解决方案,其原理是将用户信息通过加密生成Token,每次请求服务端只需要使用保存的密钥验证Token的正确性,进而不用再保存任何Session数据,使服务端变得无状态。

jwt验证方式是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,不用再保存任何session数据了,进而服务端变得无状态,容易实现拓展。

加密前的用户信息,如:

{
    "username": "vist",
    "role": "admin",
    "expire": "2018-12-08 20:20:20"
}

客户端收到的token:

7cd357af816b907f2cc9acbe9c3b4625

JWT 结构

一个token分为3部分:

  • 头部(header)

  • 载荷(payload)

  • 签名(signature)

3个部分用“.”分隔,如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

头部

JWT的头部分是一个JSON对象,描述元数据,通常是:

{
  "typ": "JWT",
  "alg": "HS256"
}

typ 为声明类型,指定 "JWT"

alg 为加密的算法,默认是 "HS256"

载荷

载荷(payload)是数据的载体,用来存放实际需要传递的数据信息,也是一个JSON对象。

JWT官方推荐字段:

PHP7在windows7中的环境配置详解_后端开发

目前PHP已经到了7了,但是7这个版本的配置和之前的5有区别,今天就记录下7的环境配置,apache配置大家可以根据自己的平台下载相应版本。

  • iss: jwt签发者

  • sub: jwt所面向的用户

  • aud: 接收jwt的一方

  • exp: jwt的过期时间,这个过期时间必须要大于签发时间

  • nbf: 定义在什么时间之前,该jwt都是不可用的.

  • iat: jwt的签发时间

  • jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。

也可以使用自定义字段,如:

{
    "username": "vist",
    "role": "admin"
}

签名

签名部分是对前两部分(头部,载荷)的签名,防止数据篡改。

按下列步骤生成:

1、先指定密钥(secret)

2、把头部(header)和载荷(payload)信息分别base64转换

3、使用头部(header)指定的算法加密

最终,签名(signature) = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)

客户端得到的签名:

header.payload.signature

也可以对JWT进行再加密。

推荐教程:《PHP》

以上就是JWT 是干什么?的详细内容,更多请关注ki4网其它相关文章!

c语言中pow函数的用法是什么?_后端开发

在c语言中pow()函数是用来求x的y次幂。x、y及函数值都是double型 ,其语法为“double pow(double x, double y)”;其中参数“double x”表示底数;参数“double y”表示指数。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
JWT 是干什么?_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>