Module: Baidu::OAuth::Flow::Base

Includes:
Support
Included in:
Code, Device
Defined in:
lib/baidu/oauth/flow/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#clientObject (readonly)

此授权流程对应的 OAuth Client 实例



10
11
12
# File 'lib/baidu/oauth/flow/base.rb', line 10

def client
  @client
end

Instance Method Details

#authorize_url(redirect_uri, params = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/baidu/oauth/flow/base.rb', line 16

def authorize_url(redirect_uri, params={})
  query = authorize_query.update params
  query.update({ client_id: self.client.client_id, redirect_uri: redirect_uri })
  Util.clean_params query
  uri = URI(self.client.site)
  uri.path  = authorize_endpoint
  uri.query = Util.encode_params(query) unless Util.blank? query
  uri.to_s
end

#get_token(code, redirect_uri = nil, params = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/baidu/oauth/flow/base.rb', line 26

def get_token(code, redirect_uri=nil, params={})
  body = token_body.update params
  body.update({ client_id: self.client.client_id,
                client_secret: self.client.client_secret,
                redirect_uri: redirect_uri, code: code})
  rest = self.client.post Baidu::OAuth::TOKEN_ENDPOINT, nil, body
  return nil if rest.nil?
  Baidu::Session.from rest
end

#initialize(client) ⇒ Object



12
13
14
# File 'lib/baidu/oauth/flow/base.rb', line 12

def initialize(client)
  @client = client
end