Class: Baidu::OAuth::Flow::Device

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/baidu/oauth/flow/device.rb

Overview

Note:

使用此授权流程,对于终端类型的应用也非常方便,同时还可以获取 Refresh Token

对设备应用而言,其流程由获取User Code和Device Code、引导用户去百度填写User Code并授权、以及通过Device Code获取Access Token这3步组成。

See Also:

Instance Attribute Summary

Attributes included from Base

#client

Instance Method Summary collapse

Methods included from Base

#initialize

Instance Method Details

#get_token(code) ⇒ Baidu::Session

通过 Device Code 来获取 Access Token

Parameters:

Returns:

See Also:



52
# File 'lib/baidu/oauth/flow/device.rb', line 52

def get_token(code); super end

#user_and_device_code(scope = nil) ⇒ Hash

获取 User Code 和 Device Code

Examples:

返回的原始 JSON

{
  "device_code": "a82hjs723h72h3a82hjs723h72h3vb",
  "user_code": "8sjiae3p",
  "verification_url": "https://openapi.baidu.com/oauth/2.0/device",
  "qrcode_url": "http://openapi.baidu.com/device/qrcode/6c6a8afee394f99e55eb25858/2c885vjk",
  "expires_in": 1800,
  "interval": 5
}

:device_code      Device Code

Parameters:

  • scope (String) (defaults to: nil)

    非必须参数,以空格分隔的权限列表

Returns:

  • (Hash)

See Also:



39
40
41
42
43
# File 'lib/baidu/oauth/flow/device.rb', line 39

def user_and_device_code(scope=nil)
  query = authorize_query.update({ client_id: self.client.client_id })
  query[:scope] = scope unless scope.nil?
  self.client.get(authorize_endpoint, query)
end