Class: Devise::MultiAuth::Authentication

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/devise/multi_auth/authentication.rb

Class Method Summary collapse

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(options)
  uid = options.fetch(:uid)
  client = options.fetch(:client)
  provider = options.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

Returns:

  • (Boolean)


27
28
29
# File 'app/models/devise/multi_auth/authentication.rb', line 27

def verified?
  access_token.present?
end