兄Die,写代码太累了?孤独寂寞冷?还没有女朋友吧?
关注微信公众号(瓠悠笑软件部落),送知识!送知识!送温暖!送工作!送女朋友!插科打诨哟!

4. JWT Claims

JWT Claims Set 表示一个 JSON 对象,它的成员是 JWT 传输的 claims。JWT Claims Set 中的 Claim Names MUST 是唯一的; JWT 解析器 MUST 拒绝拥有重复 member name 的 JWTs,或者使用 JSON 解析 只返回 重复的成员 name 的最后一个词汇,就像规范 ECMAScript 5.1 [ECMAScript] 的第 15.12 章节描述的那样。

一个 JWT 包含的 claims 必须是一组有效的,依赖上下文的。这方面的描述超出了本规范的范围。JWTs 特定的 applications 将要求实现某种特定的方法能够明白和处理某些claims。然而,缺乏某些要求,所有的 claims, 在实现时,如果不明白它的一生,就 MUST 被忽略。

这里有三种类型的 JWT Claim Names: Registered Claim Names, Public Claim Names, 和 Private Claim Names。

4.1. Registered Claim Names

下面的 Claim Names 是在 IANA “JSON Web Token Claims” 登记的,在章节 10.1. 中约定俗称。就一切情况而论,下面定义的 claims 并不要求强制使用或实现。 而是在开始的时候提供一组使用的,有帮助的 claims。 Applications 使用 JWTs 应当定义他们使用哪些特定的claims,使用时是 required 还是 optional。所有的 names 都是简短的,因为 JWTs 的核心目标是表达形式简洁紧凑。

4.1.1. “iss” (Issuer) Claim

“iss” (issuer) claim 定义了发布这个 JWT 的当事人。 如何处理这个 claim 是通常的应用程序指定。 “iss” 的值是大小写敏感的字符串,包含一个 StringOrURI 值。使用这个 claim 是 OPTIONAL。

4.1.2. “sub” (Subject) Claim

“sub” (subject) claim 定义了这个 JWT 的 subject。JWT中的 claims 通常是关于 subject 的陈述。subject 的值 MUST 是: issuer 上下文中的 scpoed,是本地唯一的,或者全局唯一的。如何处理这个 claim 通常是应用程序指定。“sub” 的值是大小写敏感的字符串,包含一个 StringOrURI 值。使用这个 claim 是 OPTIONAL。

4.1.3. “aud” (Audience) Claim

“aud” (audience) claim 在 JWT 中用来标识收件人。每个打算处理 JWT 的当事人 MUST 在 audience claim 中用值来识别自己。如果有这个 claim,但处理这个 claim 的当事人无法用它的值识别自己,那么 MUST 拒绝这个JWT。 在一般情况下,“aud” 的值是有区分大小写的字符串构成的数组。每个字符串都包含一个 StringOrURI 值。在特殊情况下,当 JWT 只有一个 audience,“aud” 的值可能是一个大小写敏感的字符串,它包含一个 StringOrURI 值。audience 的值的解译一般由应用程序指定。使用这个 claim 是 OPTIONAL。

4.1.4. “exp” (Expiration Time) Claim

“exp” (expiration time) claim 标识了失效时间,当达到或超过这个时间时。JWT MUST NOT 接受和处理,处理 “exp” claim 要求当前的 date/time MUST 在 “exp” claim 标识的 date/time 之前。考虑到时钟差, 实现者 MAY 留有一点余地,通常不超过几分钟。它的值 MUST 是一个 number 类型,包含一个 NumericDate 值。使用这个选项是 OPTIONAL。

4.1.5. “nbf” (Not Before) Claim

“nbf” (not before) claim 标识了时间点, 当早于这个时间点,JWT MUST NOT 被接受和处理。 处理这个 “nbf” claim 要求当前的 date/time MUST 在 “nbf” claim 所显示的 date/time 之后或者刚好在那个时间点。考虑到时钟差,实现者 MAY 留有一点余地,通常不超过几分钟。它的值 MUST 是一个 number 类型,包含一个 NumericDate 值。使用这个选项是 OPTIONAL。

4.1.6. “iat” (Issued At) Claim

“iat” (issued at) claim 标识了 JWT 所颁发的时间。这个 claim 能用于计算这个 JWT 已经使用的期限。它的值 MUST 是一个 number 类型,包含一个 NumericDate 值。使用这个选项是 OPTIONAL。

4.1.7. “jti” (JWT ID) Claim

“jti” (JWT ID) claim 作为 JWT 的唯一标识符。这个标识符的值 MUST 指定,在某种意思上确保相同的值在极小概率的情况下分配给另一个不同的数据对象。如果应用程序使用多个 issuers,MUST 避免不同颁发者所产生的值可能一样的冲突。“jti” claim 可以用于避免 JWT 被重复发送。“jti” 的值是大小写敏感的。使用这个选项是 OPTIONAL。

4.2. Public Claim Names

Claim Names 可以被使用 JWTs 的人定义,然而,为了避免冲突,任何新的 Claim Name 应当满足:要么是 IANA “JSON Web Token Claims” registry 里面(在 10.1 章节里面制定)注册的值,要么是一个 Public Name:一个能够防止命名冲突的 Name。在各种情况下,定义 name 或者 value 的人需要警惕他们定义的 Claim Name 在 namespace 中能够得到控制。

4.3. Private Claim Names

JWT 的生产者和消费者可以约定他们所使用的 Claim Names 就是 Private Names:这些 names 既不是 Registered Claim Names(4.1 章节),也不是 Public Claim Names(4.2章节)。 不像 Public Claim Names,在使用Private Claim Names 应当谨慎,以防止引起冲突。

JSON web token@04#JWT Claims相关推荐

  1. 后端架构token授权认证机制:spring security JSON Web Token(JWT)简例

    后端架构token授权认证机制:spring security JSON Web Token(JWT)简例 在基于token的客户端-服务器端认证授权以前,前端到服务器端的认证-授权通常是基于sess ...

  2. JSON WEB TOKEN(JWT)的分析

    JSON WEB TOKEN(JWT)的分析 一般情况下,客户的会话数据会存在文件中,或者引入redis来存储,实现session的管理,但是这样操作会存在一些问题,使用文件来存储的时候,在多台机器上 ...

  3. JWT—JSON Web Token - 理解JWT网络间应用用户安全认证交互设计

    原文地址:http://blog.leapoahead.com/2015/09/06/understanding-jwt/ 官网地址:https://jwt.io/ JSON Web Token(JW ...

  4. Json Web Token(JWT)

    JsonWebToken 概述 如果各位不了解 JWT,不要紧张,它并不可怕. JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信 ...

  5. jwt 私钥_什么是 JSON Web Token(JWT)

    有关本文档的快速链接,请参考页面提示. 什么是 JSON Web Token(JWT)? JSON Web Token (JWT) 作为一个开放的标准 (RFC 7519) 定义了一种简洁自包含的方法 ...

  6. php后台跨域token,JSON Web Token(JWT)目前最流行的跨域身份验证解决方案(PHP)类...

    JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案,下面我自己封装了一个PHP的Jwt类,直接复制即可使用,无需composer安装包: 常规的身份验证流程为: 该方案的最大的短 ...

  7. JWT/JJWT JSON WEB TOKEN介绍和使用

    JSON web Token,简称JWT,本质是一个token,是一种紧凑的URL安全方法(注意是方法,博主刚开始接触一直以为是一种像shiro一样的),用于在网络通信的双方之间传递.一般放在HTTP ...

  8. JWT(JSON WEB TOKEN)

    传统session认证 传统session,cookie的认证方式,第一次请求是会把用户信息存到服务器内存中,并返回一个JSESSIONId给请求端,之后每次请求都需要携带jsessionId来做认证 ...

  9. 在吗?认识一下JWT(JSON Web Token) ?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:是虎子呀  地址:my.oschina.net/u/4062 ...

最新文章

  1. 实现DUBBO服务环境隔离
  2. zabbix之使用proxy实现分布式监控
  3. 预览文章: c++ primer学习笔记,二:标准库类型
  4. Pyhon爬虫开发:URLError的使用
  5. python小型登录系统_python实现用户登录系统
  6. list each详解
  7. gitt之设置和取消代理
  8. [BZOJ2733] [HNOI2012] 永无乡 (splay启发式合并)
  9. CodeSmith基础(八)
  10. Unity 编辑器知识(—)如何绘制色块
  11. android 8 ldac,小米Android 8.0机型支持LDAC功能
  12. HTML5七夕情人节表白网页(花瓣相册表白) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白
  13. 【YOLOV5-5.x 源码解读】datasets.py
  14. python进程间通信之管道通信
  15. Charles 解决抓包显示乱码问题 - 已解决
  16. 应用程序无法正常启动(0xc000007b)的解决办法
  17. ghost系统后只有一个盘了别的分区的数据怎样恢复
  18. 用python画 pareto front
  19. 【单片机】自学单片机第01天|单片机简介、内部资源、最小系统
  20. Qt官方示例:UI Components: Scroll Bar Example(自定义滚动条)

热门文章

  1. halcon 阈值分割
  2. 船舶游艇三维扫描3D尺寸测量检测质量管控-CASAIM三维扫描仪
  3. 实时全局光照(Real-time Global Illumination)与Reflective Shadow Maps(RSM)
  4. 软工+C(9): 助教指南,持续更新...
  5. Seata XA 模式示例分析
  6. Linux中出现 tomcat几乎一样的多个进程?
  7. 笔记本保养的一些误区你要注意了
  8. QQ安卓协议8.2 ecdh 密钥交换
  9. Duet Display连不上Windows解决办法
  10. Centos移动/home目录空间到/根目录下