跳转到主要内容

基于 PIN 的授权

基于 PIN 的 OAuth 流程是三方 OAuth流程的一种变体,适用于在授权后无法访问或嵌入网页浏览器以重定向用户的应用。例如命令行应用、嵌入式系统、游戏主机以及某些类型的移动应用。 基于 PIN 的 OAuth 流程由应用在 request_token 中将 oauth_callback 设置为 oob 来发起。术语 oob 表示带外 OAuth。用户仍需访问 X 以登录或授权该应用,但在批准访问后不会自动重定向回应用。相反,他们会看到一个数字 PIN 码,并收到返回应用并输入该数值的指示。
注意: 即使使用基于 PIN 的认证,X 应用设置中的 callback_url 仍为必填项。
 

实施基于 PIN 的 OAuth 流程

基于 PIN 的流程与三方授权(以及 使用 X 登录)的实现方式相同,但有以下差异:
  1. 在调用 POST oauth/request_token 时,oauth_callback 的值必须设置为 oob
  2. 当用户被引导至 X,通过 GET oauth/authenticateGET oauth/authorize URL 授权你的应用后,他们不会被重定向回你的 callback_url,而是会看到一个界面,显示由 X 生成的约 7 位 PIN,并提示将该 PIN 输入到你的应用中。
  3. 用户将此 PIN 输入到你的应用,你的应用在 POST oauth/access_token 中将该 PIN 作为 oauth_verifier 使用,以获取 access_token。
注意: PIN 不可重复使用,且获得的 access_token 应用于应用与用户相关的请求。