3

Google でサインインするために「omniauth-google-oauth2」を使用しており、ここのすべての指示に注意深く従っています

   https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview

しかし、私は上記のエラーがあります。

私のルート

    devise_for :users, :controllers => {
      :omniauth_callbacks => "users/omniauth_callbacks"

    }

devise.rb コード

  config.omniauth :google_oauth2, "863625299460- 420n6c7lvad91dfvko60uamtvtr6huhf.apps.googleusercontent.com", "dcvA2aZRZi27KCQjWTYP30pw", {  access_type: "offline", approval_prompt: "" }

omn​​iauth コールバック コントローラ コード

     def google_oauth2
       #@user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user)
       binding.pry #control not coming here
     end

コールバック後に以下のエラーが発生しました。スクリーンショットを見る

    https://github.com/zquestz/omniauth-google-oauth2/issues/52
4

3 に答える 3

1

これはルートの問題のようです。「rake routes | grep auth」を実行すると、何が表示されますか?

于 2013-04-15T16:55:49.633 に答える
0

非常に遅いですが、この回答は他の人に役立つかもしれません

認証に使用deviseしている場合、devise はデフォルトでルートファイルにルートを生成し、devise_for :usersデフォルトのデバイスルートを上書きするように、ルートomniouth_callbackはデフォルトルートの上にある必要があります。devise

  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks"}
  devise_for :users
于 2015-08-15T17:47:21.043 に答える
0

あなたが説明したのとまったく同じ問題がありました。config/initializers/deviser.rb で omniauth-google-oauth2 gem が必要であることを確認してください

# ==> OmniAuth
# Add a new OmniAuth provider. Check the wiki for more information on setting
# up on your models and hooks.
require "omniauth-google-oauth2"
config.omniauth :google_oauth2, ENV["GOOGLE_KEY"], ENV["GOOGLE_SECRET"],
                                { access_type: "offline", approval_prompt: "force" }

コンテキストを提供するために、devise.rb ファイル全体を追加しました。

于 2013-06-10T15:14:25.747 に答える