2011-08-21 9 views
3

면책 사항 : 아직 MVC3 (및 특히 OAuth)으로 시작하고 있습니다. 나는 기본적인 실수를 저지르고 있을지도 모른다. 다른 토론 당 그래, 내가 사용 쿠키 :Twitter OAuth가 내 웹 사이트로 제대로 리디렉션하지 않습니다.

문제점

내 컨트롤러 쿠키가 [주 저장되지 않은 것으로보고있다. 그것을 받아 들여 계속하자.] 그리고 나에게 트위터로 안내 해준다. 큰. 그러나 승인을 클릭하면 트위터의 승인 페이지로 돌아옵니다.

내 예감은 지금까지

내 응용 프로그램이 제대로 내 페이지에 트위터 포스트 백/콜백을 처리하지 않는 것 같다.

재료

  • ASP.NET MVC 3
  • Twitterizer 라이브러리
  • C#

일반 아이디어/

가있을 가능성이있는 논리 흐름 문제 MVC3 및 OAuth를 사용한 첫 번째 고비 중입니다.

http://i56.tinypic.com/2rxchw7.png

내가 처음에 나는이 흐름 방법의 내 인식이 정확하고 있는지 확인하려면 때문에 게시 주저 해요 강령 이해할 약간이 있기 때문에 그것을 통해 파고.

도움을 주시면 미리 감사드립니다.

+0

트위터 응용 프로그램에서 콜백을 지정했거나 인증 프로세스 중에 oauth_callback을 지정하고 있습니까? –

+0

응답 해 주셔서 감사합니다. 두 가지 모두를 동일하게 설정하면서 두 가지를 모두 시도했습니다. 내 localhost로 리다이렉션하려고하기 때문에 http://127.0.0.1:[port]/Home/ConnectToTwitter를 사용했습니다. 그런 다음 xyz.com:[port]/Home/ConnectToTwitter를 지정하고 내 호스트 파일에서 xyz.com을 설정하여 localhost로 리디렉션했습니다. 비 생산 테스트를위한 더 좋은 방법이 있습니까? 이것은 문제 일 수 있습니다. – SeanKilleen

답변

0

저는 Twitter API 전문가가 아니기 때문에 100 % 확실하지 않습니다. 하지만 트위터는 콜백으로 localhost를 허용하지 않는다고 생각합니다. 그리고 리다이렉트를 허용하기 전에 URL이 해결하는 검색을 할 수도 있습니다. .hosts 파일에 지정된 내용에 도달 할 수 없습니다.

라이브 URL에 간단하게 oauth_callback을 발급하는 것이 좋습니다. 사용자가 직접 제어하는 ​​것이 바람직합니다. 거기서 끝났는지 확인하십시오. 그런 다음 oauth_token 및 oauth_verifier를 유지하는 방법을 알아낼 수 있습니다. (프로 팁 : URL을 스크랩하거나 가능한 경우 스크래핑을 쉽게하기 위해 화면에 변수를 인쇄하십시오).

또한 "oob"을 콜백으로 지정하여 테스트 할 때 어떤 결과가 발생하는지 확인하십시오.

편집 : 나는 웹 응용 프로그램을 수행하고 있기 때문에 URL을 고칠 수 없다는 것을 깨달았습니다. 죄송합니다. 하지만 실제 URL을 가지고 oauth_token과 oauth_verifier를 가져 와서 해당 페이지에서 localhost로 리디렉션하는 방법은 무엇입니까?

+0

글쎄, 첫 번째 이유는 사이트가 순전히 개발 단계에 있으며 라이브 페이지를 게시 할 호스트가 없다는 것입니다. :) 나는 그것을 얻을 것이라고 생각하지만 트위터가 개발 환경에서 테스트중인 사람들을 돕지 않는다는 것에 놀랐다. – SeanKilleen

+0

당신의 문제를 봅니다. 이 페이지를 찾았습니다. http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local-machine /. 아마도 그것이 효과가있을 것입니다. –

+1

Twitter에서는 localhost 콜백 URL을 등록 할 수 없지만 런타임에 등록 된 URL을 무시할 수 있습니다. 또한 Twitterizer는 개발자가 등록 된 콜백 URL을 재정의해야합니다. 그것이 없으면, 트위터는 콜백에 검증자를 제공하지 않습니다. –

0

플로우 차트를 올바르게 읽는다면, oauth 흐름의 일부를 잘못 이해했을 수 있습니다.사용자가 처음으로 방문한 것처럼 차트를 따라 갔을 때 (쿠키가 없거나 토큰/검증 자 없음) 트위터가 상호 작용 한 후 POST가 발생했습니다. POST는 결코 없을 것입니다. 트위터의 서버는 콜백을 실행하지 않습니다. 사용자는 쿼리 문자열에 토큰 및 검증자가 추가 된 콜백 URL로 리디렉션됩니다 (HTTP 302).

또한 검증 자 또는 토큰 제공 여부에 따라 다른 동작이있는 것이 이상하게 보입니다. 당신이 제대로하고 있다면, 당신은 다른 사람없이 하나도 가질 수 없을 것이며 당신이 잘못하고있다하더라도 토큰이없는 검증자를 결코 가질 수 없을 것입니다.

언제 GetAccessToken 메서드를 호출하고 있습니까?

+0

안녕하세요 리키, 당신의 의견과 탐험을 감안할 때, 나는 트위터가 리다이렉트를하는 것을 보았습니다. 이걸 감안할 때 MVC 컨트롤러에 대한 GET 요청이어야하므로 다른 [httpPost] 컨트롤러가 필요하지 않습니다. 처음에 로컬 호스트 콜백을 허용하지 않는 트위터에서 발생했던 혼란에서 추가 컨트롤러를 추가했습니다. 고맙습니다! – SeanKilleen

관련 문제