module Elmas::OAuth
rubocop:disable Metrics/ModuleLength
Public Instance Methods
get_access_token(code, _options = {})
click to toggle source
Return an access token from authorization
# File lib/elmas/oauth.rb, line 42 def get_access_token(code, _options = {}) conn = Faraday.new(url: base_url) do |faraday| faraday.request :url_encoded faraday.adapter Faraday.default_adapter end params = access_token_params(code) conn.post do |req| req.url "/api/oauth2/token" req.body = params req.headers["Accept"] = "application/json" end end
get_refresh_token(refresh_token)
click to toggle source
Return an access token from authorization via refresh token
# File lib/elmas/oauth.rb, line 56 def get_refresh_token(refresh_token) conn = Faraday.new(url: config[:base_url]) do |faraday| faraday.request :url_encoded faraday.adapter Faraday.default_adapter end params = refresh_access_token_params(refresh_token) conn.post do |req| req.url "/api/oauth2/token" req.body = params req.headers["Accept"] = "application/json" req.headers["Content-Type"] = "application/x-www-form-urlencoded" end end
Private Instance Methods
access_token_params(code)
click to toggle source
# File lib/elmas/oauth.rb, line 80 def access_token_params(code) { client_id: client_id, client_secret: client_secret, grant_type: "authorization_code", code: code, redirect_uri: redirect_uri } end
refresh_access_token_params(code)
click to toggle source
# File lib/elmas/oauth.rb, line 90 def refresh_access_token_params(code) { client_id: client_id, client_secret: client_secret, grant_type: "refresh_token", refresh_token: code } end