Postman – OAuth 2.0 授权
背景
在现代网络应用程序中,授权(authorization)和认证(authentication)是至关重要的概念。认证是确定用户身份的过程,而授权是确定用户访问特定资源的过程。
OAuth是一种基于标准web和HTTP协议的授权协议。它允许用户授权第三方应用程序访问其资源,而无需将用户名和密码直接透露给第三方。
理解OAuth流程
1. 用户进入应用程序并启动OAuth流程
这个过程的顺序如下:
用户点击登录或在应用程序中请求某个受保护的资源。
应用程序检查用户是否已经登录过,如果没有,则引导他们到登录页面。
2. 应用程序请求授权
应用程序向资源所有者请求访问受保护的资源的授权。此请求应该包括:
- 服务提供者标识符;
- 范围(scope),即请求访问哪些资源的说明;
- 以及一个可选的重定向URI(redirect_uri),用于在授权完成后将用户向应用返回。
3. 用户批准应用程序请求
如果用户同意授权应用程序访问其资源,那么他将被引导到授权服务器以批准该请求。此处需要用户输入其用户名和密码。
4. 应用程序获得访问令牌
一旦用户批准授权请求,授权服务器就会发回一个授权代码给应用程序。该授权代码将在下一步用于请求访问令牌。
5. 应用程序请求访问令牌
应用程序使用之前获得的授权代码请求访问令牌。此请求应包括:
- 服务提供者标识符;
- 前一步中获得的授权代码;
- 关联于此请求的重定向URI。
6. 授权服务器返回访问令牌
如果授权服务器验证了请求并得出结论,它将发回一个访问令牌给应用程序。访问令牌是一个代表资源所有者访问权限的字符串,可以被用于请求访问受保护的资源。
使用Postman进行OAuth 2.0授权
1. 设定授权类型
在Postman的请求窗口中,选择 “Authorization”选项卡。在“Type”下拉菜单中选择“OAuth 2.0”。
2. 添加授权信息
在“Add Authorization Data”中添加以下信息:
- Token Name:授权令牌的名称;
- Grant Type: 授权类型,例如密码方法、客户端凭证方法等;
- Callback URL: 授权完成后跳转回来的 url;
- Auth URL: 授权中心的地址;
- Client ID: 应用创建时获取到的 id;
- Client Secret: 应用创建时获取到的 secret;
- Scope: 请求的权限范围,例如 userinfo、read,write 等。
3. 获取访问令牌
完成授权信息的添加后,点击 “Get New Access Token” 按钮。
会跳出一个弹窗,
这时需要输入认证中心的相关信息,并在弹窗中点击 “Request Token” 按钮。
若认证中心的相关信息验证成功,则在下方就可以看到生成的 AccessToken 和过期时间。
此时就可以使用刚刚生成的 AccessToken 来请求受保护的资源,从而成功实现授权过程。
4. 刷新访问令牌
在获取到访问令牌后,如果过期了,就需要刷新访问令牌。回到“Authorization”选项卡中,在“Add Authorization Data”中相应填写信息。
点击“Refresh Token”,弹出授权中心窗口,输入相关信息,即可成功刷新访问令牌。
结论
OAuth 2.0 是一种强大的授权协议,已成为现代网络应用程序中授权和认证的标准之一。Postman 作为一款强大的API测试工具,不仅支持 OAuth 2.0 授权,而且其易用性和灵活性也使得授权过程变得简单快捷。