Class: Baidu::OAuth::Flow::AuthorizationCode

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

Overview

采用Authorization Code获取Access Token的授权验证流程又被称为Web Server Flow,适用于所有有Server端的应用,如Web/Wap站点、有Server端的手机/桌面客户端应用等。

Instance Attribute Summary

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Baidu::OAuth::Flow::Base

Instance Method Details

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

获取 Authorization URL

Options Hash (params):

  • :scope (String)

    以空格分隔的权限列表,若不传递此参数,代表请求用户的默认权限

  • :state (String)

    用于保持请求和回调的状态,授权服务器在回调时(重定向用户浏览器到“redirect_uri”时),会在Query Parameter中原样回传该参数。OAuth2.0标准协议建议,利用state参数来防止CSRF攻击

  • :display (String)

    登录和授权页面的展现样式,默认为“page”

  • :force_login (Boolean)

    true 表示加载登录页时强制用户输入用户名和口令,不会从cookie中读取百度用户的登陆状态

  • :confirm_login (Boolean)

    true 表示且百度用户已处于登陆状态,会提示是否使用已当前登陆用户对应用授权

See Also:



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

def authorize_url(redirect_uri, params={}); super end

#get_token(code, redirect_uri) ⇒ Baidu::Session

Note:

每一个 Authorization Code 的有效期为10分钟,并且只能使用一次,再次使用将无效。

通过获得的 Authorization Code,换取一个 Access Token

如果用户在此页面同意授权,授权服务则将重定向用户浏览器到应用所指定的“redirect_uri”,并附带上表示授权服务所分配的 Authorization Code 的 code 参数,以及 state 参数(如果请求authorization code时带了这个参数)。



29
# File 'lib/baidu/oauth/flow/authorization_code.rb', line 29

def get_token(code, redirect_uri); super end