Files
growstuff/app/controllers/authentications_controller.rb
2022-11-06 16:34:36 +10:30

43 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require './lib/actions/oauth_signup_action'
class AuthenticationsController < ApplicationController
before_action :authenticate_member!
load_and_authorize_resource
# POST /authentications
def create
auth = request.env['omniauth.auth']
@authentication = nil
if auth
name = Growstuff::OauthSignupAction.new.determine_name(auth)
@authentication = current_member.authentications
.create_with(
name:,
token: auth['credentials']['token'],
secret: auth['credentials']['secret']
)
.find_or_create_by(
provider: auth['provider'],
uid: auth['uid'],
name:
)
flash[:notice] = "Authentication successful."
else
flash[:notice] = "Authentication failed."
end
redirect_to request.env['omniauth.origin'] || edit_member_registration_path
end
# DELETE /authentications/1
def destroy
@authentication.destroy
respond_to do |format|
format.html { redirect_to edit_member_registration_path }
end
end
end