Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

rails Googleソーシャルログインの実装でエラーが起きてしまいます 初心者なので凡ミスかもしれませんがご教授ください

解決したいこと

Googleソーシャルログインを行うとLoadErrorが発生してしまいます。

例)
Ruby on RailsでツイッターのようなWebアプリをつくっています。
Googleアカウントでのログイン機能(ソーシャルログイン?)実装中にエラーが発生しました。
解決方法を教えて下さい。

https://zenn.dev/yoiyoicho/articles/c44a80e4bb4515
この記事を参考にソーシャルログイン機能を実装しています
Googleアカウントを選択したりする画面まではエラーなく動作しますが、アカウントを選択するとエラーが発生してしまいます。

ruby 3.1.2
rails 7.0.3
deviseは使用していません

発生している問題・エラー

LoadError
cannot load such file -- googleauth/id_tokens/verifier
             
class GoogleLoginApiController < ApplicationController
  require 'googleauth/id_tokens/verifier' ←これにマーカーが入っています。

  protect_from_forgery except: :callback
  before_action :verify_g_csrf_token

該当するソースコード

google_login_api_controller.rb
class GoogleLoginApiController < ApplicationController
  require 'googleauth/id_tokens/verifier'

  protect_from_forgery except: :callback
  before_action :verify_g_csrf_token

  def callback
    payload = Google::Auth::IDTokens.verify_oidc(params[:credential], aud: 'GOOGLE CLIENT ID')
    user = User.find_or_create_by(email: payload['email'])
    session[:user_id] = user.id
    redirect_to after_login_path, notice: 'ログインしました'
  end

  private

  def verify_g_csrf_token
    if cookies["g_csrf_token"].blank? || params[:g_csrf_token].blank? || cookies["g_csrf_token"] != params[:g_csrf_token]
      redirect_to root_path, notice: '不正なアクセスです'
    end
  end
end
routes.rb
  root 'static_pages#before_login'
  get '/after_login' => 'static_pages#after_login'
  post '/google_login_api/callback' => 'google_login_api#callback'
  get 'static_pages/before_login'
  get 'static_pages/after_login'

最後まで読んでいただきありがとうございます
ご教授いただければ幸いです!!

1

1Answer

私も同じサイトを参考にしていましたが、ここにつまずき悩んでいます。
もし投稿者さんが解決していたなら、解決方法を教えていただきたいです!

1Like

Your answer might help someone💌