Class: Box::Session
Constant Summary collapse
- OAUTH2_URLS =
{ site: 'https://www.box.com', authorize_url: '/api/oauth2/authorize', token_url: '/api/oauth2/token' }
Class Attribute Summary collapse
-
.on_token_refresh ⇒ Object
Returns the value of attribute on_token_refresh.
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#client_id ⇒ Object
Returns the value of attribute client_id.
-
#client_secret ⇒ Object
Returns the value of attribute client_secret.
-
#config ⇒ Object
Returns the value of attribute config.
-
#oauth2_access_token ⇒ Object
Returns the value of attribute oauth2_access_token.
-
#on_token_refresh ⇒ Object
Returns the value of attribute on_token_refresh.
-
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
Instance Method Summary collapse
- #aquire_access_token(code) ⇒ OAuth2::AccessToken
-
#authorize_url(options = {}) ⇒ Object
value.
-
#initialize(config = {}) ⇒ Session
constructor
A new instance of Session.
- #oauth2_client ⇒ Object
- #refresh_token! ⇒ Object
- #set_tokens! ⇒ Object
Constructor Details
#initialize(config = {}) ⇒ Session
Returns a new instance of Session.
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/box/session.rb', line 18 def initialize(config = {}) @config = config # We must have at least these variables @client_id = config[:client_id] @client_secret = config[:client_secret] @access_token = config[:access_token] @refresh_token = config[:refresh_token] if @access_token @oauth2_access_token = OAuth2::AccessToken.new(oauth2_client, @access_token, {refresh_token: @refresh_token}) end end |
Class Attribute Details
.on_token_refresh ⇒ Object
Returns the value of attribute on_token_refresh.
8 9 10 |
# File 'lib/box/session.rb', line 8 def on_token_refresh @on_token_refresh end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
4 5 6 |
# File 'lib/box/session.rb', line 4 def access_token @access_token end |
#client_id ⇒ Object
Returns the value of attribute client_id.
4 5 6 |
# File 'lib/box/session.rb', line 4 def client_id @client_id end |
#client_secret ⇒ Object
Returns the value of attribute client_secret.
4 5 6 |
# File 'lib/box/session.rb', line 4 def client_secret @client_secret end |
#config ⇒ Object
Returns the value of attribute config.
5 6 7 |
# File 'lib/box/session.rb', line 5 def config @config end |
#oauth2_access_token ⇒ Object
Returns the value of attribute oauth2_access_token.
4 5 6 |
# File 'lib/box/session.rb', line 4 def oauth2_access_token @oauth2_access_token end |
#on_token_refresh ⇒ Object
Returns the value of attribute on_token_refresh.
4 5 6 |
# File 'lib/box/session.rb', line 4 def on_token_refresh @on_token_refresh end |
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
4 5 6 |
# File 'lib/box/session.rb', line 4 def refresh_token @refresh_token end |
Instance Method Details
#aquire_access_token(code) ⇒ OAuth2::AccessToken
42 43 44 45 46 |
# File 'lib/box/session.rb', line 42 def aquire_access_token(code) @oauth2_access_token = oauth2_client.auth_code.get_token(code) set_tokens! @oauth2_access_token end |
#authorize_url(options = {}) ⇒ Object
value
37 38 39 |
# File 'lib/box/session.rb', line 37 def ( = {}) oauth2_client.auth_code.() end |
#oauth2_client ⇒ Object
31 32 33 |
# File 'lib/box/session.rb', line 31 def oauth2_client OAuth2::Client.new(@client_id, @client_secret, OAUTH2_URLS.dup) end |
#refresh_token! ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/box/session.rb', line 53 def refresh_token! @oauth2_access_token = @oauth2_access_token.refresh! set_tokens! Box::Session.on_token_refresh.call(@oauth2_access_token.token, @oauth2_access_token.refresh_token) @oauth2_access_token rescue OAuth2::Error => e if e.code == 'invalid_client' || ((e.code == 'invalid_grant') && (e.description == 'Refresh token has expired' || e.description == 'Invalid refresh token')) raise e if @config[:disable_auth] Box.log "Error authenticating Box -> #{e.}" Box.log 'Attempting to reauthorize and get new tokens' @oauth2_access_token = Box::Authorization.(config) set_tokens! return @oauth2_access_token else raise e end end |
#set_tokens! ⇒ Object
48 49 50 51 |
# File 'lib/box/session.rb', line 48 def set_tokens! @access_token = @oauth2_access_token.token @refresh_token = @oauth2_access_token.refresh_token end |