OAuth 2.0学习

Posted haonan-cyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OAuth 2.0学习相关的知识,希望对你有一定的参考价值。

一、认识OAuth2.0      

  是什么:OAuth是一个关于授权的开放网络标准
       能做什么:以安全的方式做数据的共享(第三方登录授权)

二、OAuth2.0 四种授权模式

1. 授权码(认证码)模式 (Authorization code) response_type=code
2. 简化(隐形)模式 (Impilict) response_type=token
3. 用户名密码模式 (Resource Owner Password Credential) grant_type=password
4. 客户端模式 (Client Credential) grant_type=client_credential

技术图片

OAuth2.0的核心既是取得access_token,四种授权模式殊途同归,最终都是要取得access_token,只是路径不同,参数不同

问题:什么场景选择哪种方式?

 授权码:第三方登录授权

 客户端凭证:机器与机器之间

 用户名密码:QQ和QQ音乐(都是一方的)

 简化:第三方共同开发

三、四种模式实践

参考代码地址https://github.com/spring2go/oauth2lab

1.授权码模式授权服务器的测试

分析:授权码模式的授权服务器需要授权服务和资源服务,还需要返回用户的信息(domain和controller)

测试流程:

  a.获取授权码

    发送请求:主要是发送客户端id

    输入账号密码登录之后

    会返回一个随机code

  b.获取访问令牌

    发送请求携带 客户端id及 secret密码

    验证成功会获取access_token

  c.调用api

    通过access_token能够获取响应的数据

 

以上是关于OAuth 2.0学习的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 2.0介绍学习

OAuth 2.0 学习

OAuth 2.0实现分布式认证授权

Spring Security Oauth2架构学习

我与OAuth 2.0那点荒唐的小秘密

使用 Laravel API 实现 OAuth 2.0 身份验证