【Rails5】Devise + OmniAuth のTwitter認証で「OAuth::Unauthorized」エラーの対処法


「OAuth::Unauthorized」エラーに遭遇

こちらの記事を参考にDeviseとomniauth-twitterの設定中にエラーに遭遇。

参考
[Rails] deviseの使い方(rails5版)

開発環境
ruby > 2.6.5
rails > 5.2.4.2
devise > 4.7.1

一通り設定後、localhostのログイン画面で「Sign in with Twitter」をクリックするとエラーが。

原因は「Callback URL」

OAuth::Unauthorizedでひたすらググると
「Callback URL」に関する記事が複数ヒット。
どうやらTwitterのAPI仕様変更があったらしく、Callback URLを書き換える必要があるらしい。

アプリ側のCallback URLをこのように変更。

Callback_URL
http://192.168.10.2:3000/users/auth/twitter/callback
http://localhost:3000/users/auth/twitter/callback

なぜ2つ必要なのかわかりませんが、今回はこれで動きました。

まとめ

Twitterに限らず、APIは仕様変更が頻繁に行われるので要注意ですね。
ローカル環境ではうまく動きましたが、本番環境に移行するときはまたエラーを吐くのでは?とドキドキしています。