前提・実現したいこと
Railsアプリをherokuでデプロイし、google認証によるログインをさせたいです。
発生している問題・エラーメッセージ
ローカルでは実装済みで、問題なく動作しています。
herokuへのデプロイも済んでいます。
deviseを使っており、herokuでもgoogle認証ではない通常のログインやその他ページは問題なく動作しています。
google認証でログインしようとすると、
この画面になります。
該当のソースコード
Logは以下のようになっています。
2022-01-11T08:03:32.227417+00:00 heroku[router]: at=info method=POST path="/users/auth/google_oauth2" host=small-diary2911.herokuapp.com request_id=7d003550-629c-4788-8cfd-fc5f1cb3be26 fwd="219.115.23.228" dyno=web.1 connect=0ms service=2ms status=302 bytes=1583 protocol=https 2022-01-11T08:03:32.224830+00:00 app[web.1]: I, [2022-01-11T08:03:32.224765 #4] INFO -- : [7d003550-629c-4788-8cfd-fc5f1cb3be26] Started POST "/users/auth/google_oauth2" for 219.115.23.228 at 2022-01-11 08:03:32 +0000 2022-01-11T08:03:32.225063+00:00 app[web.1]: I, [2022-01-11T08:03:32.225033 #4] INFO -- omniauth: (google_oauth2) Request phase initiated. 2022-01-11T08:03:32.735388+00:00 app[web.1]: I, [2022-01-11T08:03:32.735310 #4] INFO -- : [07ed9936-26cf-4d75-a907-5801ffa2f32f] Started GET "/users/auth/google_oauth2/callback?state=f237f46a25f15ef88b54e024caafba18e9810bf92507ebb4&code=4%2F0AX4XfWgh99MD28AuV6bmhcx-34dxxLBW7TBIvuctt8iQKBX6tWKG2sSU7W0OLYpMe47azA&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&authuser=0&prompt=none" for 219.115.23.228 at 2022-01-11 08:03:32 +0000 2022-01-11T08:03:32.735623+00:00 app[web.1]: I, [2022-01-11T08:03:32.735591 #4] INFO -- omniauth: (google_oauth2) Callback phase initiated. 2022-01-11T08:03:32.815800+00:00 app[web.1]: I, [2022-01-11T08:03:32.815712 #4] INFO -- : [07ed9936-26cf-4d75-a907-5801ffa2f32f] Processing by Users::OmniauthCallbacksController#google_oauth2 as HTML 2022-01-11T08:03:32.815822+00:00 app[web.1]: I, [2022-01-11T08:03:32.815794 #4] INFO -- : [07ed9936-26cf-4d75-a907-5801ffa2f32f] Parameters: {"state"=>"f237f46a25f15ef88b54e024caafba18e9810bf92507ebb4", "code"=>"4/0AX4XfWgh99MD28AuV6bmhcx-34dxxLBW7TBIvuctt8iQKBX6tWKG2sSU7W0OLYpMe47azA", "scope"=>"email profile https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/userinfo.profile", "authuser"=>"0", "prompt"=>"none"} 2022-01-11T08:03:32.822455+00:00 app[web.1]: I, [2022-01-11T08:03:32.822376 #4] INFO -- : [07ed9936-26cf-4d75-a907-5801ffa2f32f] Completed 500 Internal Server Error in 7ms (ActiveRecord: 3.4ms | Allocations: 343) 2022-01-11T08:03:32.822976+00:00 app[web.1]: F, [2022-01-11T08:03:32.822937 #4] FATAL -- : [07ed9936-26cf-4d75-a907-5801ffa2f32f] 2022-01-11T08:03:32.822977+00:00 app[web.1]: [07ed9936-26cf-4d75-a907-5801ffa2f32f] ActiveRecord::StatementInvalid (Mysql2::Error: Table 'heroku_c4facd89bb1c437.sns_credentials' doesn't exist): 2022-01-11T08:03:32.822978+00:00 app[web.1]: [07ed9936-26cf-4d75-a907-5801ffa2f32f] 2022-01-11T08:03:32.822979+00:00 app[web.1]: [07ed9936-26cf-4d75-a907-5801ffa2f32f] app/models/user.rb:14:in `from_omniauth' 2022-01-11T08:03:32.822979+00:00 app[web.1]: [07ed9936-26cf-4d75-a907-5801ffa2f32f] app/controllers/users/omniauth_callbacks_controller.rb:10:in `authorization' 2022-01-11T08:03:32.822980+00:00 app[web.1]: [07ed9936-26cf-4d75-a907-5801ffa2f32f] app/controllers/users/omniauth_callbacks_controller.rb:4:in `google_oauth2' 2022-01-11T08:03:32.824364+00:00 heroku[router]: at=info method=GET path="/users/auth/google_oauth2/callback?state=f237f46a25f15ef88b54e024caafba18e9810bf92507ebb4&code=4%2F0AX4XfWgh99MD28AuV6bmhcx-34dxxLBW7TBIvuctt8iQKBX6tWKG2sSU7W0OLYpMe47azA&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&authuser=0&prompt=none" host=small-diary2911.herokuapp.com request_id=07ed9936-26cf-4d75-a907-5801ffa2f32f fwd="219.115.23.228" dyno=web.1 connect=0ms service=89ms status=500 bytes=1827 protocol=https
試したこと
承認済みのリダイレクト URIに以下を設定しており
https://small-diary2911.herokuapp.com/users/auth/google_oauth2/callback
またHeroku configには以下を設定しています。
heroku config:set GOOGLE_APP_ID='自分のID' heroku config:set SECRET_KEY_BASE='自分のKEY'
以上を試しても結果は変わらずエラーになってしまいます。
ご教授いただけると幸いです。
あなたの回答
tips
プレビュー