Devise+Omniauth에서 Twitter 인증 시 'OAuth::Unauthorized 403 Forbidden'이 나와 인증할 수 없게 되었다

2018년 6월 13일 아침부터 Rails에서 만든 자작 서비스에서 Twitter 인증을 하면 오류가 발생했습니다.



뭐라고 생각 구그라고 보면 전세계에서도 같은 사건이 일어나고 있는 것 같고, 원인은 TwitterAPI의 사양 변경에 의한 것이었습니다.

Experiencing momentary disruptions? This means you have not enabled whitelisting for your callback URLs. Be sure to follow our guidance on how to make these changes by June 12th or your callback URLs will fail. See our May forum post for guidance. .45 Twitter API (@TwitterAPI) htps // t. 코/우 WBvhX30에6


TwitterApps에서 설정하고 있는 콜백 URL과 요청으로 보내는 콜백 URL의 파라미터가 다른 경우에 연주하는 사양으로 바뀌었다는 것입니다.



콜백 URL 검토



나의 자작 서비스의 경우, Twitter 인증 후에는 users/mypage 에 날리도록 하고 있었으므로, Twitter Apps의 콜백 URL에는 https://hogehoge/users/mypage 로 설정하고 있었습니다. 이것이 좋지 않은 것 같습니다.



2018년 6월 7일



을 참고하여 콜백 URL을 https://hogehoge/users/auth/twitter/callback 로 설정합니다.



이어서 앱 측입니다. Rails+Devise+Omniauth로 구현하고 있으므로 config/devise.rb 의 콜백 URL을 검토합니다.




config/devise.rb

config.omniauth :twitter, ENV['TWITTER_CONSUMER_KEY'], ENV['TWITTER_CONSUMER_SECRET']



여기에 콜백 URL을 명시하지 않았으므로




config/devise.rb

config.omniauth :twitter, ENV['TWITTER_CONSUMER_KEY'], ENV['TWITTER_CONSUMER_SECRET'], callback_url: "https://hogehoge/users/auth/twitter/callback"



라고 하고 명시적으로 콜백 URL을 일치시켰을 때 해결했습니다.

(추가: Local과 프로덕션 환경에서 URL이 다르므로 dotenv 등에서 환경 변수로 설정하면 됩니다.)



이상입니다.


좋은 웹페이지 즐겨찾기