class Simple::Oauth2::Client

Attributes

access_token[RW]
auth_endpoint[RW]
base_uri[RW]
client_id[RW]
client_secret[RW]
redirect_uri[RW]
refresh_token[RW]
token_endpoint[RW]

Public Class Methods

new(props={}) click to toggle source
# File lib/simple-oauth2.rb, line 22
def initialize(props={})
  @client_id = props[:client_id]
  @client_secret = props[:client_secret]

  @redirect_uri = props[:redirect_uri]
  @base_uri = props[:base_uri]

  @auth_endpoint = props[:auth_endpoint]
  @token_endpoint = props[:token_endpoint]

  @access_token = props[:access_token]
  @refresh_token = props[:refresh_token]
end

Public Instance Methods

exchange(code) click to toggle source

Exchanges a verification code for an access token.

# File lib/simple-oauth2.rb, line 53
def exchange(code)
  params = Addressable::URI.new
  params.query_values = {
    type: 'web_server',
    client_id: @client_id,
    redirect_uri: @redirect_uri,
    client_secret: @client_secret,
    code: code
  }
  uri = "#{@base_uri}#{@token_endpoint}?#{params.query}"
  conn = Faraday.new(:url => uri)
  response = conn.post uri
  binding.pry
  Response.new(response.body)
end
new_access_token() click to toggle source

Returns a new access token.

# File lib/simple-oauth2.rb, line 37
def new_access_token
  params = Addressable::URI.new
  params.query_values = {
    type: 'refresh',
    refresh_token: @refresh_token,
    client_id: @client_id,
    redirect_uri: @redirect_uri,
    client_secret: @client_secret
  }
  url = "#{@base_uri}#{@token_endpoint}?#{params.query}"
  conn = Faraday.new(:url => url)
  response = conn.post url
  Response.new(response.body)
end
redirect_url() click to toggle source

Returns redirect url.

# File lib/simple-oauth2.rb, line 70
def redirect_url
  params = Addressable::URI.new
  params.query_values = {
    type: 'web_server',
    client_id: @client_id,
    redirect_uri: @redirect_uri,
  }
  "#{@base_uri}#{@auth_endpoint}?#{params.query}"
end