現在、RailsでWebアプリを開発しているものなのですが、Twitterでのログイン機能を実装する際、ローカルではうまくいくのに、Heroku上ではうまく行きません。環境変数もちゃんと渡しているのですが...
/auth/twitterはちゃんと開くのですが、/auth/twitter/callbackでエラーが起きます。
ちなみに関係ありそうな箇所のコードは以下の通りになります。
/app/controllers/sessions_controller.rb
class SessionsController < ApplicationController def create user = User.find_or_create_from_auth(request.env['omniauth.auth']) session[:user_id] = user.id redirect_to root_path end def destroy reset_session redirect_to root_path end end
/config/routes
... get '/auth/:provider/callback', to: 'sessions#create' get '/logout', to: 'sessions#destroy' root 'home#top' ...
/app/models/user.rb
class User < ApplicationRecord def self.find_or_create_from_auth(auth) provider = auth[:provider] uid = auth[:uid] nickname = auth[:info][:nickname] image_url = auth[:info][:image] self.find_or_create_by(provider: provider, uid: uid) do |user| user.nickname = nickname user.image_url = image_url end end end
あと、Twitter Developerの設定上のCallback URLは/auth/twitter/callbackとなっています。どなたかご存じの方がいらっしゃれば、回答を宜しくお願い致します。
あなたの回答
tips
プレビュー