Twitter 로그인 인증에서 404 (forbidden) 또는 401 (Unauthorized) 오류가 발생했을 때의 해결 방법

소개



Twitter의 API를 사용해 Twitter 로그인 기능을 만들고 있습니다만, 인증 에러로 빠졌으므로 메모.

이번에는
・404(forbidden)
・401(Unauthorized)
의 대처법을 해설해 갑니다.

401 오류 처리





401 오류는 인증 오류로 요청 측에 문제가 있음을 의미합니다.

원인 : API key가 잘못되었습니다.consummer key 또는 consumer sercret 가 잘못되었을 수 있으므로 개발자 페이지 에서 e key
config/initializers/devise.rb
  config.omniauth :twitter, (consummer key), (consumer sercret)

글쎄요, 이것이 치료되면 다음은 403 오류에 도달했습니다.

403 오류 해결





403 오류는 브라우징이 금지되었다는 의미입니다.

원인 : callback URL과 localhost URL이 일치하지 않았습니다.

개발자 화면로 이동하여 앱의 상세 화면으로 이동하여 등록한 callback의 url을 확인해 봅시다.



이 빨간색으로 둘러싸인 url 부분과 local 환경에서 사용하고 싶은 url이 일치하지 않으면 오류를 토해 버립니다.
rails routes | grep callback 에서 callback url을 확인합니다.
user_twitter_omniauth_authorize GET|POST /users/auth/twitter(.:format)          omniauth_callbacks#passthru
user_twitter_omniauth_callback GET|POST users/auth/twitter/callback(.:format) omniauth_callbacks#twitter

여기에서는 users/auth/twitter/callback 에 날고 싶기 때문에,

callback URL은 http://127.0.0.1:3000/users/auth/twitter/callback입니다.

라고 여기까지 해결하는 사람도 있거나 하지 않거나 한다고 생각합니다만, 개인적으로 일부 빠진 포인트로서는, 기동하고 있는 로컬 환경의 url과, developer로 설정한 callback_url이 완전 일치해 그렇지 않으면 403エラー가 발생합니다.

즉,
callback_url → →http://127.0.0.1:3000/users/auth/twitter/callback로컬 환경에서 시작한 url →http://localhost:3000/users/auth/twitter/callback오류가 발생합니다.

정확하게,
callback_url →http://127.0.0.1:3000/users/auth/twitter/callback로컬 환경에서 시작한 url →http://127.0.0.1:3000/users/auth/twitter/callback입니다.

이와 같이 도메인명도 설정한 callback_url 와 일치하도록 합시다.

확인 사항



· 키가 잘못 되었습니까?
· 개발자의 callback_url이 잘못 되었습니까?
· 도메인 이름도 일치합니까?

여기에 준 것 이외에도 에러의 원인이 되는 것은 많이 있을까 생각합니다.
단순히 API key가 잘못되었다고 요청에 문제가있는 경우가 많기 때문에 초조하지 않고 하나씩 부서 갑시다.

좋은 웹페이지 즐겨찾기