class Box::Session
Constants
- OAUTH2_URLS
Attributes
on_token_refresh[RW]
access_token[RW]
client_id[RW]
client_secret[RW]
config[RW]
oauth2_access_token[RW]
on_token_refresh[RW]
refresh_token[RW]
Public Class Methods
new(config = {})
click to toggle source
# 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
Public Instance Methods
aquire_access_token(code)
click to toggle source
@return [OAuth2::AccessToken]
# 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
oauth2_client()
click to toggle source
# File lib/box/session.rb, line 31 def oauth2_client OAuth2::Client.new(@client_id, @client_secret, OAUTH2_URLS.dup) end
refresh_token!()
click to toggle source
# 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.message}" Box.log 'Attempting to reauthorize and get new tokens' @oauth2_access_token = Box::Authorization.authorize(config) set_tokens! return @oauth2_access_token else raise e end end
set_tokens!()
click to toggle source
# File lib/box/session.rb, line 48 def set_tokens! @access_token = @oauth2_access_token.token @refresh_token = @oauth2_access_token.refresh_token end