2014-01-13 5 views
10

나는 다시 붙어 있습니다! 개별 계정을 사용하여 ASP.NET ID로 보안 된 WebApi 서비스를 구현하려고합니다. WebApi 서비스는 phonegap으로 개발 된 모바일 앱에 의해 소비됩니다. 내 phonegap 애플 리케이션 페이스 북과 트위터를 사용하여 로그인하고 나는 클라이언트에서 완벽하게 구현했습니다.WebApi 및 외부 로그인을 사용하는 ASP.NET ID

Visual Studio 템플릿으로 SPA 프로젝트 양식을 만들었으며 HTTP 요청을 모니터링하는 로그인 프로세스를 fiddler 및 chrome dev 도구로 테스트했습니다. http://localhost:49577/api/Account/ExternalLogins?returnUrl=/&generateState=true

응답 :

[{ 
     "Name": "Facebook", 
     "Url": "/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49577%2F&state=jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01", 
     "State": "jpePf27F3ufkCCEldFdoOVHSGBGTEO1CrRdUQ3bHEP01" 
}] 

을 한 후 나는 GET 전화 : 나는 우체부

GET을 사용하여 다음과 같은 요청을 시도 AccountsController의 GetExternalLogin 메소드를 호출 http://localhost:49577/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49577%2F&state=jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01 . 그런 다음 사용자가 인증되지 않은 경우 ChallengeResult 인스턴스를 반환합니다.

이것은 내가 갇혀있는 곳입니다. Q1 : ChallengeResult가 일부 쿼리 문자열 매개 변수로 페이스 북 로그인 페이지로 301 리디렉션하도록합니다. 나는 이것을 원하지 않는다. 매개 변수를주고 싶지만 내 아약스 요청에 대한 로깅을 처리하게한다. 나는 코드

Request.GetOwinContext().Authentication.Challenge(LoginProvider); 

이 라인을 주석 시도했지만 내가 어떻게 무엇을 ChallegeResult의 응답 제어 할 수 있습니다, 다른 아무것도 401을 치울?

2. 또한, 나는 여기에서 무엇을 알아낼 수 없는데, 페이스 북에서 액세스 토큰을 얻은 후에, 이미 액세스 토큰을 얻은 경우 webapi 엔드 포인트를 호출해야한다. 어떻게 전달해야 하는가?

나는 하루 종일 인터넷 검색을하고 있지만 내 질문에 대한 답변을 찾을 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사

UPDATE : Q2 대하여

; 나는 다음 단계를 파악하고 그 GET의 :이 차례로 다음

http://localhost:49164/#access_token=... 

어떻게 리디렉션 또 다른 302를 반환하는

http://localhost:49164/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49164%2F&state=7oGPd37EA-nmtXPtYEQ40qnretDeKjbPEM1gNkb2DuM1 

로 리디렉션 또 다른 302 반환 http://localhost:49164/signin-facebook?code=...&state=...

브라우저가 아닌 모바일 클라이언트에서 리디렉션을 모두 처리합니까?

내가 http://localhost:49164/signin-facebook?code=...&state=... 사람이 도와 드릴까요 처리하는 컨트롤러 액션을 찾기 위해 노력하고

UPDATE?

UPDATE 나는이 질문을 게시하는 것은 어쩌면 내가 전에 행한해야 facebool 로그인 흐름에 대해 많이 배운 이후있다! 아직 하나의 질문이 있지만 난잡함을 없애기 위해 a different question for that here을 만들었습니다.

+0

이것에 대해서도 고심하고 있습니다 ... 나는 angularJs 앱을 가지고 있으며 FB JS SDK 만 사용하여 WebApi없이 FB 로그인을 시도했습니다. 하지만 다시, 나는 페이스 북에서받은 인증 데이터를 어디서 보내야할지 고집한다. 여기에 내 질문에 대한 참조입니다 : http://stackoverflow.com/questions/22846510/handling-server-redirect-to-facebook-login-page-in-angularjs –

답변

관련 문제