Class: Devise::MultiAuth::Authentication
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Devise::MultiAuth::Authentication
- Defined in:
- app/models/devise/multi_auth/authentication.rb
Class Method Summary collapse
- .find_by_provider_and_uid(provider, uid) ⇒ Object
- .find_user_by_provider_and_uid(provider, uid) ⇒ Object
- .to_access_token(options) ⇒ Object
Instance Method Summary collapse
Class Method Details
.find_by_provider_and_uid(provider, uid) ⇒ Object
23 24 25 |
# File 'app/models/devise/multi_auth/authentication.rb', line 23 def self.find_by_provider_and_uid(provider, uid) where(provider: provider, uid: uid).includes(:user).first end |
.find_user_by_provider_and_uid(provider, uid) ⇒ Object
15 16 17 18 19 20 21 |
# File 'app/models/devise/multi_auth/authentication.rb', line 15 def self.find_user_by_provider_and_uid(provider, uid) if auth = find_by_provider_and_uid(provider, uid) auth.user else nil end end |
.to_access_token(options) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'app/models/devise/multi_auth/authentication.rb', line 6 def self.to_access_token() uid = .fetch(:uid) client = .fetch(:client) provider = .fetch(:provider) where(provider: provider, uid: uid).first!.to_access_token(client: client) rescue ActiveRecord::RecordNotFound raise AccessTokenNotFound.new(provider: provider, uid: uid) end |
Instance Method Details
#to_access_token(config = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'app/models/devise/multi_auth/authentication.rb', line 31 def to_access_token(config = {}) client = config.fetch(:client) { Devise::MultiAuth.oauth_client_for(provider) } tokenizer = config.fetch(:tokenizer) { ::OAuth2::AccessToken.method(:new) } if verified? tokenizer.call(client, access_token, refresh_token: refresh_token) else raise AccessTokenUnverified.new(provider: provider, uid: uid) end end |
#verified? ⇒ Boolean
27 28 29 |
# File 'app/models/devise/multi_auth/authentication.rb', line 27 def verified? access_token.present? end |