Help us understand the problem. What is going on with this article?

Rails OAuth::Unauthorized というエラー出たら

OAuth::Unauthorized エラー

Railsで現在サービスを開発しているホリカワ です。

本番環境でツイッター経由ログインしようとすると、上記のエラーが出ました。
スクリーンショット 2019-05-28 21_0.14.35.png

原因としては

①CallbackURLの設定ミス
②Twitter API key関連の設定ミス

が多いかとは思います。(これ以外にもたくさんありそう)

解決方法

僕の場合は①でした。

結論からいうと、config/initializers/devise.rbに設定を加えると解決しました。

config/initializers/devise.rb
config.omniauth :twitter, "twiiter api key", "twitter secret key"

scope: 'email', callback_url: 'example.com/auth/twitter/callback'
↑を追加

config/initializers/devise.rb
config.omniauth :twitter, "twiiter api key", "twitter secret key", scope: 'email', callback_url: 'example.com/auth/twitter/callback'

わかったこと

このほかのエラーの原因として、本番環境の場合はhttps://でないとダメみたいです。

また、twitter dev のアプリの設定で、callback_urlが間違っていないかはrails routesで確認してみましょう。

user_twitter_omniauth_callback GET|POST /users/auth/twitter/callback(.:format

終わりに

OAuth::Unauthorized は調べてみた感じだといくつかの要因が考えられそうです。
こちらの記事が解決のお手伝いになればと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away