2014-02-08 2 views
36

"개인 계정"인증을 사용하여 새 웹 프로젝트를 시작할 때 생성되는 기본 프로젝트를 기반으로하는 Owin 미들웨어를 사용하여 OAuth 인증을 설정했습니다.Asp.Net MVC 5 Owin Twitter Auth throw 401 Exception

나는 그것을 조금 쥐게했지만, 페이스 북과 구글은 작업 위대한, 그러나 나는 도전, 그것은 오류 메시지와 함께 500 HTTP 예외를 던지고 발행하는 "트위터"버튼을 클릭 할 때 :

응답 상태 코드가 성공을 나타내지 않습니다. 401 (인증되지 않음).

이것은 Twitter에서만 제공됩니다. 이 표시 나는 그것이 트위터에 원래의 게시물 도전을 통과하게 결코 확인했다으로

// Just a configuration section that reads from the web.config 
var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration"); 
app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration)); 
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 

app.UseTwitterAuthentication(
    consumerKey: "XXX", 
    consumerSecret: "XXX" 
); 

app.UseFacebookAuthentication(
    appId: "XXX", 
    appSecret: "XXX" 
); 

app.UseGoogleAuthentication(); 

그것은 확실히 500 오류가 아닌 401 오류입니다 : 여기 내 인증의 설정입니다.

Stack Trace

어떤 아이디어 : 스택 추적 트위터가 ObtainRequestToken 호출에서 성공 코드를 반환하지 않습니다 보여 나타 납니까?

답변

65

Twitter Dev App에 들어가서 웹 사이트 주소를 추가해야합니다. 어리석은 것처럼 보이지만 이것이 당신의 문제를 해결할 것입니다.

  1. https://apps.twitter.com/
  2. 이동 어떤 웹 사이트에 콜백 URL을 설정 설정 탭
  3. 합니다. 그것이 진짜가 아니더라도.

이렇게하면 문제가 해결됩니다.

+0

와우. 훌륭해 - 고마워! – MikeAtCodeSmart

+7

선택적 필드가 아닌 선택적 필드입니다. 하하! – JoshYates1980

+4

FYI URL을 설정 한 후 적용되는 데 약 5 분이 걸립니다. 나는 이것에 하루를 낭비했다. –

2

패트릭이 1 년 전에 설명한 방법으로 내 문제를 해결했습니다. 오늘도 같은 문제가 다시 발생했지만 이번에는 컴퓨터에서 날짜/시간 설정으로 인해 문제가 발생한 것으로 나타났습니다. 이 컴퓨터의 날짜/시간이 일반적으로 비동기이기 때문에 "날짜 및 시간 설정 변경"-> "인터넷 시간"탭으로 이동하여 인터넷 동기화를 활성화해야했습니다.