質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

1190閲覧

deviseを使わずGoogle認証・SNS認証を実装したい

yukikiti

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/09/30 04:34

こんにちは。
現在、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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

投稿2020/10/11 13:14

yukikiti

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問