2013-01-08 4 views
0

난 레일 애플 리케이션에서 omniauth - twitter를 사용하려고하는데, 나는 처음부터 붙어있어 원인이 무엇인지 알 수 없습니다. dev.twitter.com에 응용 프로그램을 등록했고 CONSUMER_KEY 및 CONSUMER_SECRET을 받았습니다. 내가401 권한이없는 omniauth-twitter로

<%= link_to "Sign in with Twitter", "auth/twitter" %> 

트위터 로그인에 대한 링크를 application.html.erb 레이아웃에서 초기화/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :twitter, "an_alphanumeric_code", "some_other_alphanumeric_code" 
end 

에서 직접이 두 변수를 넣어하지만 테스트 시간을 단축하려면 내가 클릭하면 (나는 이미 다른 질문을 확인

401 Unauthorized 

얻을 대신 트위터 로그인에 리디렉션의, 로그인하고이 컴퓨터 시간 문제가되지 않습니다 내 레일 서버에 시간이 올바르게 설정되어 있음). 테스트를 위해 공개 IP 및 서버 이름을 사용할 수없는 문제가 있다고 생각됩니다.

로컬 127.0.0.1:3000 레일 서버에서 옴니 아쓰 - 트위터를 사용할 수있는 사람이 있습니까?

+0

보안을 위해 API 자격 증명을 하드 코딩하지 않아야하며, 특히 버전 관리에 커밋하지 않아야합니다. – Brandon

답변

5

앱을 등록하는 동안 Callback URL을 애플리케이션에 넣었습니까? Callback URL이 누락 된 경우 이것이 발생하는 첫 번째 문제입니다.

+0

예, 웹 페이지의 주석을주의 깊게 읽지 않았기 때문에 콜백 URL 필드를 비워 뒀습니다. "아직 URL이 없으면 여기에 자리 표시자를 넣지 만 나중에 변경해야합니다. . " 콜백 url 필드에도. 내 실수, 많이 고마워. – kranz

1

Omniauth 트위터는 로컬 레일 개발 환경에서 잘 작동합니다. 확인 사항 :

귀하의 경로는 무엇인가, 콜백에 대해 올바르게 설정되어

match "/auth/:provider/callback" => "sessions#create" 

또한 당신의 LINK_TO에서 경로의 가능성이없는 슬래시를 확인할 수 있습니다. 로 변경 시도 :

<%= link_to "Sign in with Twitter", "/auth/twitter" %> 

을 Omniauth 트위터의 내 구현에서는 이미 트위터로 로그인 한 경우가 로그인 또는 확인 화면으로 이동하지 않으면 (이 다른 사람과 동일해야한다고). dev.twitter.com에서 지정한 URL로 다시 리디렉션됩니다. 따라서 앱을 점검하여 인증을 위해 Twitter로 진행하고 있는지 확인하십시오 (Firebug 또는 Chrome 개발자 도구 사용). 그러면 문제를 추적하는 데 도움이됩니다.

관련 문제