Class: FlatApi::OAuth2Helper

Inherits:
Object
  • Object
show all
Defined in:
lib/flat_api/oauth.rb

Overview

Builds the authorization URL and exchanges codes for tokens.

Instance Method Summary collapse

Constructor Details

#initialize(client_id:, client_secret:, redirect_uri:) ⇒ OAuth2Helper

Returns a new instance of OAuth2Helper.



41
42
43
44
45
# File 'lib/flat_api/oauth.rb', line 41

def initialize(client_id:, client_secret:, redirect_uri:)
  @client_id = client_id
  @client_secret = client_secret
  @redirect_uri = redirect_uri
end

Instance Method Details

#authorize_url(scopes:, state:, offline: true) ⇒ Object

URL to send a user to. offline is what yields a refresh token.



48
49
50
51
52
53
54
55
# File 'lib/flat_api/oauth.rb', line 48

def authorize_url(scopes:, state:, offline: true)
  params = {
    client_id: @client_id, redirect_uri: @redirect_uri, response_type: 'code',
    scope: Array(scopes).join(' '), state: state
  }
  params[:access_type] = 'offline' if offline
  "#{AUTHORIZE_URL}?#{URI.encode_www_form(params)}"
end

#exchange_code(code) ⇒ Object



57
58
59
# File 'lib/flat_api/oauth.rb', line 57

def exchange_code(code)
  token_request(grant_type: 'authorization_code', code: code, redirect_uri: @redirect_uri)
end

#refresh(refresh_token) ⇒ Object



61
62
63
# File 'lib/flat_api/oauth.rb', line 61

def refresh(refresh_token)
  token_request(grant_type: 'refresh_token', refresh_token: refresh_token)
end