Module: Devise::Models::Auth0Authenticatable::ClassMethods

Defined in:
lib/devise/models/auth0_authenticatable.rb

Instance Method Summary collapse

Instance Method Details

#find_or_sync_auth0(info) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/devise/models/auth0_authenticatable.rb', line 14

def find_or_sync_auth0(info)
  unless uid = info['sub'] || info['user_id']
    raise MissingAuth0Id.new(info),
      "Expected auth0_user_id, got none inside of #{@info.inspect}"
  end

  if user = User.find_by(auth0_user_id: uid)
    # cool
  elsif user = User.find_by(email: info['email'])
    name = user.name || info['name']
    user.update! auth0_user_id: uid, name: name
  end

  user
end