什么是OAuth
OAuth(Open Authorization,开放授权)是一种授权协议
允许某个应用代表用户,去访问另一个服务的资源,而无需让应用知道用户的密码。
核心概念
| 名称 | 含义 |
|---|---|
| Resource Owner(资源所有者) | 用户本人 |
| Client(客户端) | 第三方应用 |
| Resource Server(资源服务器) | 存放用户数据的服务器 |
| Authorization Server(授权服务器) | 负责登录、发令牌 |
| Access Token(访问令牌) | 授权后发给第三方应用的通行证,有有效期 |
四种模式
基于不同的使用场景,OAuth2.0设计了四种模式:
- 授权码(Authorization Code):OAuth2.0 标准授权步骤,Server 端向 Client 端下放 Code 码,Client 端再用 Code 码换取授权 Access-Token。
- 隐藏式(Implicit):无法使用授权码模式时的备用选择,Server 端使用 URL 重定向方式直接将 Access-Token 下放到 Client 端页面。
- 密码式(Password):Client 端直接拿着用户的账号密码换取授权 Access-Token。
- 客户端凭证(Client Credentials):Server 端针对 Client 级别的 Token,代表应用自身的资源授权。
具体的设计模式可以参考这篇文章
基础功能
OAuth的基础功能是根据用户名和密码生成一个临时的凭证
接着通过这个凭证访问各种API获取信息
远东在线提供了基础的OAuth2 API,本文将会对其常用的两种方式进行教学,让我们开始吧!