Omniauth-GoogleApi設定でredirect_uri_mismatch
RailsのアプリでGoogleのOauthを入れようとしてます。
一通り設定してからGoogle+のソーシャルログインリンクボタンを押したところ
となりました。
各ソースは以下の通りです。まずGemfile。
# Devise & Omniauth
gem 'devise'
gem 'omniauth'
gem 'omniauth-facebook'
gem 'omniauth-twitter'
gem 'omniauth-google-oauth2'
コントローラーはこちらです。
class Users::OmniauthCallbacksController < Devise::RegistrationsController
def google
@user = User.find_for_google(request.env['omniauth.auth'])
if @user.persisted?
flash[:notice] = I18n.t 'devise.omniauth_callbacks.success', kind: 'Google'
sign_in_and_redirect @user, event: :authentication
else
session['devise.google_data'] = request.env['omniauth.auth']
redirect_to new_user_registration_url
end
end
Viewはこちらです。
- if devise_mapping.omniauthable?
= link_to image_tag('facebook.png'), user_omniauth_authorize_path(:facebook)
= link_to image_tag('twitter.png'), user_omniauth_authorize_path(:twitter)
= link_to image_tag('google.png'), user_omniauth_authorize_path(:google)
br
Route.rbはこちらです。
Rails.application.routes.draw do
get 'home/index'
devise_for :users, skip: [:session, :password, :registration], controllers: { omniauth_callbacks: "users/omniauth_callbacks" }
scope "(:locale)", locale: /en|ja/ do
get '/' => 'frontpage#index'
get 'restaurant/' => 'restaurant#index'
get 'restaurant/:id' => 'restaurant#show'
devise_for :users, skip: [:omniauth_callbacks]
end
最後にGoogleDeveloperの設定です。
恐らく、リダイレクト先が間違っていてViewのヘルパーuser_omniauth_authorize_pathあたりが不適切な情報を取ってきているのだろうと推測するのですが、どこを直すべきかわかりません。
どなたかご教示頂けると幸いです。