jwt实现权限认证,单点登录之jwt和oauth2
jwt实现权限认证,单点登录之jwt和oauth2前两段只是我目前的粗浅理解,希望大佬们友好交流。令牌的使用:每个发到 API 的请求,都必须带有令牌。具体做法是在请求的头信息,加上一个Authorization字段,令牌就放在这个字段里面。OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 规定了四种获得令牌的流程。不管哪一种授权方式,申请之前,都必须给系统说明自己的身份,然后会拿到两个身份识别码:client ID和client secret。这是为了防止令牌被滥用。authorization codeimplicit
Json web token(JWT)我理解token就是进入系统的一种识别方式。具体怎么用,可以有很多种设计。
oauth2就可以用来规定JWT如何使用。是一种规范。
一个是令牌,一个是规范。
所以在和统一权限最对接的时候听他们说有两种接入方式,一种oauth2一种jwt还有点奇怪,不同类的东西怎么能这么说呢?(一下是阮一峰博客中看到的,mark一下)
OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 规定了四种获得令牌的流程。不管哪一种授权方式,申请之前,都必须给系统说明自己的身份,然后会拿到两个身份识别码:client ID和client secret。这是为了防止令牌被滥用。
- 授权码authorization code
authorization code
- 隐藏式implicit
implicit
- 密码式
- A 网站要求用户提供 B 网站的用户名和密码。拿到以后,A 就直接向 B 请求令牌。
- B 网站验证身份通过后,直接给出令牌。注意,这时不需要跳转,而是把令牌放在 JSON 数据里面,作为 HTTP 回应,A 因此拿到令牌。
- 凭证式
- A 应用在命令行向 B 发出请求
- B 网站验证通过以后,直接返回令牌
- 这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享同一个令牌。
令牌的使用:每个发到 API 的请求,都必须带有令牌。具体做法是在请求的头信息,加上一个Authorization字段,令牌就放在这个字段里面。
前两段只是我目前的粗浅理解,希望大佬们友好交流。