Class: Jm81auth::OAuth::Base
- Inherits:
-
Object
- Object
- Jm81auth::OAuth::Base
- Defined in:
- lib/jm81auth/oauth/base.rb
Instance Method Summary collapse
-
#data ⇒ Hash
Data returned by accessing data URL.
-
#display_name ⇒ String
Display name (e.g. “Jane Doe”) from data.
-
#email ⇒ String
Email address from data.
-
#get_data ⇒ Hash
Get data via get request to provider’s data URL.
-
#initialize(params) ⇒ Base
constructor
Setup @params from params param (Har, har).
-
#provider_data ⇒ Hash
Provider_name and provider_id.
-
#provider_id ⇒ String
Provider assigned ID, from data.
-
#provider_name ⇒ String
Provider name, based on class name.
Constructor Details
#initialize(params) ⇒ Base
Setup @params from params param (Har, har). Also, set @access_token, either from params Hash, or by calling #get_access_token. @params is the expected params needed by #get_access_token.
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/jm81auth/oauth/base.rb', line 14 def initialize params @params = { code: params[:code], redirect_uri: params[:redirectUri], client_id: params[:clientId], client_secret: Jm81auth.config.client_secrets[provider_name] } @access_token = params[:access_token] || get_access_token end |
Instance Method Details
#data ⇒ Hash
Returns Data returned by accessing data URL.
26 27 28 |
# File 'lib/jm81auth/oauth/base.rb', line 26 def data @data or get_data end |
#display_name ⇒ String
Returns Display name (e.g. “Jane Doe”) from data.
31 32 33 |
# File 'lib/jm81auth/oauth/base.rb', line 31 def display_name data['name'] end |
#email ⇒ String
Returns Email address from data.
36 37 38 |
# File 'lib/jm81auth/oauth/base.rb', line 36 def email data['email'] end |
#get_data ⇒ Hash
Get data via get request to provider’s data URL.
43 44 45 46 |
# File 'lib/jm81auth/oauth/base.rb', line 43 def get_data response = client.get(self.class::DATA_URL, access_token: @access_token) @data = JSON.parse(response.body) end |
#provider_data ⇒ Hash
Returns provider_name and provider_id.
59 60 61 |
# File 'lib/jm81auth/oauth/base.rb', line 59 def provider_data { provider_name: provider_name, provider_id: provider_id } end |
#provider_id ⇒ String
Returns Provider assigned ID, from data.
54 55 56 |
# File 'lib/jm81auth/oauth/base.rb', line 54 def provider_id data['id'] || data['sub'] end |
#provider_name ⇒ String
Returns Provider name, based on class name.
49 50 51 |
# File 'lib/jm81auth/oauth/base.rb', line 49 def provider_name self.class.name.split('::').last.downcase end |