こんにちは。
現在、Railsでwebアプリケーションを開発しているのですが、会員登録、ログインには慣れていないdeviseを使わず、Progateで学習した登録機能を実装しています。
ここにどうしてもGoogle認証(またはSNS認証)を実装したいと思い、firebase等色々と調べているのですが、よくわからず質問させていただきました。
そもそも以下の登録機能において、Google認証(またはSNS認証)を実装する事は出来るのでしょうか?
また、よろしければその実装方法も教えて頂けたら幸いです。
御回答のほどよろしくお願い致します。
users_controller.rb
1class UsersController < ApplicationController 2 before_action :authenticate_user, { only: [:index, :show, :edit, :update] } 3 before_action :forbid_login_user, { only: [:new, :create, :login_form, :login] } 4 before_action :ensure_correct_user, { only: [:edit, :update] } 5 6 def index 7 @users = User.all 8 end 9 10 def complete 11 @user = User.find_by(id: params[:id]) 12 end 13 14 def new 15 @user = User.new 16 end 17 18 def create 19 @user = User.new( 20 name: params[:name], 21 email: params[:email], 22 password: params[:password], 23 password_confirmation: params[:password_confirmation], 24 ) 25 if @user.save 26 session[:user_id] = @user.id 27 flash[:notice] = "アカウントを作成しました" 28 redirect_to("/course/index/#{@user.id}") 29 else 30 render("users/new") 31 end 32 end 33 34 def edit 35 @user = User.find_by(id: params[:id]) 36 end 37 38 def update 39 @user = User.find_by(id: params[:id]) 40 @user.name = params[:name] 41 @user.email = params[:email] 42 @user.email_confirmation = params[:email_confirmation] 43 44 if @user.save 45 flash[:notice] = "プロフィールを編集しました" 46 redirect_to("/course/index/#{@user.id}") 47 else 48 render("users/edit") 49 end 50 end 51 52 def edit_password 53 @user = User.find_by(id: params[:id]) 54 end 55 56 def update_password 57 @user = User.find_by(id: params[:id]) 58 @user.password = params[:password] 59 @user.password_confirmation = params[:password_confirmation] 60 61 if @user.save 62 flash[:notice] = "パスワードを変更しました" 63 redirect_to("/course/index/#{@user.id}") 64 else 65 render("users/edit_password") 66 end 67 end 68 69 def login_form 70 end 71 72 def login 73 @user = User.find_by(email: params[:email]) 74 if @user && @user.authenticate(params[:password]) 75 session[:user_id] = @user.id 76 flash[:notice] = "ログインしました" 77 redirect_to("/course/index/#{@user.id}") 78 else 79 @error_message = "メールアドレスまたはパスワードが間違っています" 80 @email = params[:email] 81 @password = params[:password] 82 render("users/login_form") 83 end 84 end 85 86 def logout 87 session[:user_id] = nil 88 flash[:notice] = "ログアウトしました" 89 redirect_to("/") 90 end 91 92 def likes 93 @user = User.find_by(id: params[:id]) 94 @likes = Like.where(user_id: @user.id) 95 end 96 97 98 def ensure_correct_user 99 if @current_user.id != params[:id].to_i 100 flash[:notice] = "権限がありません" 101 redirect_to("/posts/index") 102 end 103 end 104end 105
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。