Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def google_oauth2
- user = User.find_for_google_oauth2(request.env['omniauth.auth'])
- if user.persisted?
- sign_in_and_redirect user, event: :authentication
- set_flash_message(:notice, :success, kind: 'GoogleOauth2') if is_navigational_format?
- else
- session['devise.google_oauth2_data'] = request.env['omniauth.auth']
- redirect_to new_user_registration_url
- end
- end
- devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :trackable, :validatable,
- :omniauthable, omniauth_providers: [:facebook, :google_oauth2]
- has_and_belongs_to_many :oauth_credentials
- def self.find_for_google_oauth2(auth)
- where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
- user.provider = auth.provider
- user.uid = auth.uid
- user.email = auth.info.email
- user.password = Devise.friendly_token[0,20] # Fake password for validation
- user.first_name = auth.info.name
- user.last_name = auth.info.nickname
- user.picture = auth.info.image
- user.token = auth.credentials.token
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement