Devise+Omniauth에서 Twitter 인증 시 'OAuth::Unauthorized 403 Forbidden'이 나와 인증할 수 없게 되었다
뭐라고 생각 구그라고 보면 전세계에서도 같은 사건이 일어나고 있는 것 같고, 원인은 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
로 설정하고 있었습니다. 이것이 좋지 않은 것 같습니다.
을 참고하여 콜백 URL을 https://hogehoge/users/auth/twitter/callback
로 설정합니다.
이어서 앱 측입니다. Rails+Devise+Omniauth로 구현하고 있으므로 config/devise.rb
의 콜백 URL을 검토합니다.
config.omniauth :twitter, ENV['TWITTER_CONSUMER_KEY'], ENV['TWITTER_CONSUMER_SECRET']
여기에 콜백 URL을 명시하지 않았으므로
config.omniauth :twitter, ENV['TWITTER_CONSUMER_KEY'], ENV['TWITTER_CONSUMER_SECRET'], callback_url: "https://hogehoge/users/auth/twitter/callback"
라고 하고 명시적으로 콜백 URL을 일치시켰을 때 해결했습니다.
(추가: Local과 프로덕션 환경에서 URL이 다르므로 dotenv 등에서 환경 변수로 설정하면 됩니다.)
이상입니다.
Reference
이 문제에 관하여(Devise+Omniauth에서 Twitter 인증 시 'OAuth::Unauthorized 403 Forbidden'이 나와 인증할 수 없게 되었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mh4gf/items/41d2c868317edea5045b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)