8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] HerokuにデプロイしたらGoogleログイン機能が機能しなくなった

Last updated at Posted at 2020-07-16

##Googleアカウントのログイン機能が動かない

  • RubyとRailsのバージョン

  • Ruby: 2.6.5

  • Rails: 6.0.2

  • 行なったこと

  • Omniauthを導入し、Googleアカウントでログインする機能を実装

  • .envファイルを作成し、クライアントIDとシークレットIDをこちらに記載

  • .envファイルを.gitignore内に記載し、GitHubから見えないように設定

  • Herokuにデプロイ

DeviseやOmniauthが原因でHerokuにデプロイできない方はこちらの記事をご覧ください
https://qiita.com/TAKO-zhangyu/items/153321ab6b333b614e12

  • 行いたいこと
  • デプロイした先の環境で、Googleアカウントを使ってログインできるようにする

##状況

ローカル環境(localhost:3000)では機能していたGoogleアカウントでのログイン機能ですが、Herokuにデプロイしたサイトで見ると機能しなくなりました。

client_idが取得できないと表示されています。

Authorization Error

Error 400: invalid_request
Missing required parameter: client_id

Learn more

実際の画面↓
スクリーンショット 2020-07-16 22.23.25(2).png

##原因
Google oauthを使ったログイン機能の実装には、Google側から発行されたクライアントID (GOOGLE_CLIENT_ID)と、シークレットID (GOOGLE_CLIENT_SECRET)が必要です。

このコードはあまり見えるところに置くべきではないため、私は.envファイルを作成し、その中に書き込みました。
そして、この.envファイルは.gitignoreのなかに記載しているので、GitHubから見えない状態になっています。

しかし、同時にHerokuにも見えない状態になってしまっています。

なので、client_idが取得できないと表示されてしまいました。

##Herokuにclient_idを知ってもらおう

1. https://dashboard.heroku.com/apps に移動します。

2. ログインします。

一度デプロイできている場合、そこに自分のアプリの名前が載っていると思います。

3. 自分のアプリの名前をクリックしてください。

すると、ページの上あたりにあるナビバーで確認すると、現在 Overview にいると思います。

4. そのナビバーの最も右にある Setting をクリックしてください。

5. 上から2段目にある Reveal Config Vars というボタンをクリックしてください。

Config Varsがたくさん並んでいると思います。DATABASE_URLとか、LANGとかが並んでいるところです。

スクリーンショット 2020-07-16 22.22.29(2).png

6. その中に、Google側から発行されたIDを追加しましょう。

左側のKEY欄にGOOGLE_CLIENT_ID、右側のVALUE欄に発行されたIDを入力し、Addをクリックしてください。
シークレットIDも同じ要領で入力しましょう。

そうすると、治りました。

GitHubに見えないようにしているからHerokuからも見えないのは当たり前か、と腹落ちしました。参考になると嬉しいです。

プログラマーとしての就職活動中です。もしよければTwitterのフォローお願いいたします!
Twitter : https://twitter.com/tako_guangzhou

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?