JSON WEB Token(JWT)
最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息。且一个当用户重新登陆后,原来的token就会失效,这么安全的一个token怎么就被别人认为不安全了呢?自己孤陋寡闻,被问及jwt?没听过的名词,一查rfc,原来这么回事,和自己实现的token认证完全差不多嘛,而且比jwt本身更安全,即使token被泄露,只需要用户重新登陆认证一次,泄露的token立即失效,但jwt不一样,它如果泄露,在有效期内,依然有效,不可控。不过应该也能通过技术手段解决这种问题
JSON WEB Token (JWT)
摘要
JSON Web Token(JWT) 是一个简洁,两者传输之间是URL安全的方式。
这个声明在JWT中被编码为JSON对象被用于负载(payload)(JWS)签名结构或作为一个明文的
JSON Web 加密(JWE)结构,以MAC(消息授权码)或加密方式使这个声明为数字签名或完整性保护
- 1 介绍
- 2 术语
- 3 JWT概述
- 3.1 JWT例子
- 4 JWT声明
- 4.1 注册声明名称
- 4.1.1 iss(Issuer)声明
- 4.1.2 sub(Subject)声明
- 4.1.3 aud(Audience)声明
- 4.1.4 exp(Expiration Time)声明
- 4.1.5 nbf(Not Before)声明
- 4.1.6 iat(Issued At)声明
- 4.1.7 jti(JWT ID)声明
- 4.2 公共声明名称
- 4.3 私有声明名称
- 5 JOSE 头部
- 5.1 typ(Type)头部参数
- 5.2 cty(Content Type)头部参数
- 5.3 将声明复制为头部参数
- 6 非安全(Unsecured)的JWTs
- 6.1 非安全的JWTs例子
- 7 创建和验证JWTs
- 7.1 创建一个JWT
- 7.2 验证一个JWT
- 7.3 字符串比较规则
- 8 实现要求
- 9 URI是一个JWT
- 10 IANA思考
- 10.1 JSON Web Token声明注册
- 10.1.1 注册模版
- 10.1.2 初始化注册内容
- 10.2 子命名空间注册 urn:ietf:params:oauth:token-type:jwt
- 10.2.1 注册内容
- 10.3 媒体类型注册
- 10.3.1 注册内容
- 10.4 头部参数名称注册
- 10.4.1 注册内容
- 11 安全考虑
- 11.1 信任依据
- 11.2 签名或加密顺序
- 12 隐私考虑
- 13 参考
- 13.1 规范参考
- 13.2 信息性参考
- 附录A JWT例子
- a.1 JWT加密示例
- a.2 JWT嵌套示例
- 附录B JWTs到SAML关系断言
- 附录C JWTs到SWTs(简单Web token)关系
1.介绍
JWT 是一个简洁声明格式,同于空间受限的环境,如HTTP授权头部和URI查询参数。
JWT将声明编码为JSON对象用于传输。它使用一个JWS的数据结构或JWE的数据结构。
JWT与jot单词发音一样
2.术语
JWS定义规范
- JSON Web Signature(JWS)
- Base64uri Encoding
- Header parameter
- JOSE Header
- JWS Compact Serialization
- JWS payload
- JWS Signature
- Unsecured JWS
JWE定义规范
- JSON Web Encryption(JWE)
- Content Encryption Key(CEK)
- JWE Compact Serialization
- JWE Encrypted Key
- JWE Initialization Vector
Internet Security Glossary定义规范
- Ciphertext
- Digital Signature
- Message Authentication Code(MAC)
- Plaintext
JSON Web Token(JWT)
- 一个字符串的集合声明作为一个JSON对象编码于JWS或JWE结构内,使这个声明变为数字签名或MAC或加密
JWT Claims Set
- 包含由JWT传输的声明的JSON对象
Claim
- 关于某个主题的一条信息,一个声明表示由一个名称和值组成的
- Claim Name
这个名称是声明的一部分,总是一个字符串类型
- Claim Value
这个值是声明的一部分,一个声明的值可以是任意的JSON对象
- Nested JWT
使用嵌套签名和/或加密的JWT,在嵌套的JWT中,被用作一个有效载荷或明文值分别包含JWS或JWE结构
JSON WEB Token(JWT)的更多相关文章
- JSON Web Token (JWT) 简介
JSON Web Token (JWT) 是一种基于 token 的认证方案. JSON Web Token 的结构 一个 JWT token 看起来是这样的: eyJhbGciOiJIUzI1NiI ...
- JSON Web Token (JWT) 实现与使用方法
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该 ...
- Json Web Token(JWT)详解
什么是Json Web Token Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的 ...
- JSON Web Token (JWT),服务端信息传输安全解决方案。
JWT介绍 JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑独立的基于JSON对象在各方之间安全地传输信息的方式.这些信息可以被验证和信任,因为它是数字签名的 ...
- 漫谈JSON Web Token(JWT)
一.背景 传统的单体应用基于cookie-session的身份验证流程一般是这样的: 用户向服务器发送账户和密码. 服务器验证账号密码成功后,相关数据(用户角色.登录时间等)都保存到当前会话中. 服务 ...
- 基于 Token 的身份验证:JSON Web Token(JWT)
1.传统身份验证和JWT的身份验证 传统身份验证: HTTP 是一种没有状态的协议,也就是它并不知道是谁是访问应用.这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过 ...
- JSON Web Token (JWT) - Introduction
To validate the challenge, connect as admin.------------以admin登陆 https://jwt.io/introduction/ ...
- json web token JWT实现TP5创建和验证
根据博客进行jwt初始化配置 https://blog.csdn.net/weixin_43389208/article/details/117442266?spm=1001.2014.3001.55 ...
- JSON Web Token (JWT) - Weak secret
This API with its /hello endpoint (accessible with GET) seems rather welcoming at first glance but i ...
随机推荐
- 机器学习 - 正则化L1 L2
L1 L2 Regularization 表示方式: $L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 ...
- Mac tree命令的使用,输出目录树结构
安装: brew install tree 常用命令: tree --help: 查看帮助信息 tree -d: 只显示文件夹 tree -D: 显示文件的最后修改时间 tree -I no ...
- Python包中__init__.py作用
在创建python包的过程中,IDE都会在包根目录下创建一个__init__.py文件,该Python文件默认是空的.目录结构如下: Pycharm下的package树结构: 在Finder中的目录结 ...
- React Router v4 页面传值的三种方法
传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...
- 算法时间计算:logA(N)与O(n)
算法运行时间估算常见O(log(n))log:求对数例:a^b=na为底数,b为n的对数记作:logA(n)=b ->求N的对数 计算器验算:计算器的log默认以10为底 输入 10,log ...
- tcp协议的简单理解
tpc协议属于传输层协议,本篇主要介绍下几个概念,以及握手和挥手的过程. 1.tcp的几个概念 位码:即tcp标志位,有6种提示 SYN:synchronus,表示建立联机. ACK:acknowle ...
- [转] fastText
mark- from : https://www.jiqizhixin.com/articles/2018-06-05-3 fastText的起源 fastText是FAIR(Facebook AIR ...
- POJ 1251 Jungle Roads (最小生成树)
题目: Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ...
- Visual Studio Code 的使用方法和技巧
VSCode是微软推出的一款轻量编辑器,采取了和VS相同的UI界面,搭配合适的插件可以优化前端开发的体验. 布局:左侧是用于展示所要编辑的所有文件和文件夹的文件管理器,依次是`资源管理器`,`搜索`, ...
- tomcat日志格式中的含义
%a - 远程IP地址 %A - 本地IP地址 %b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节 %B - 发送的字节数,不包括HTTP头 %h - 远程主机名 %H - 请求协 ...