2014-11-29 3 views
1

범위를 사용하는 사용자로부터 추가 Facebook 데이터를 얻은 다음이를 클레임에 저장하는 방법을 보여주는이 블로그를 읽었습니다.Facebook 받기 WebApi 사용시 OAuth 토큰 및 클레임 저장

http://blogs.msdn.com/b/webdev/archive/2013/10/16/get-more-information-from-social-providers-used-in-the-vs-2013-project-templates.aspx

이 표준 MVC 웹 응용 프로그램에서 때 잘 작동하는 것 같다. 그러나 WebApi를 사용할 때 토큰을 저장하는 데 어려움을 겪고 있습니다. Startup.Auth 코드는 정확히 내 프로젝트에서 동일하며 요청한 범위가 정확하다는 것을 알 수 있지만 요청한 데이터에 액세스해야하는 시점을 이해하지 못합니다. 또한, 주장은 결코 이상하게 저장되지 않는 것 같습니다.

+0

실제로 MVC 웹 응용 프로그램 프로젝트에서도 Token에 대한 클레임은 Startup.Auth에 지정 했음에도 불구하고 저장되지 않습니다. – Raj

답변

1

ASP.NET Web API 2 external logins with Facebook and Google에 대한 내 블로그 게시물을 읽어 보시기 바랍니다. 여기서는 MVC 의존성 또는 템플릿을 사용하지 않고 웹 로그 API와 외부 로그를 통합하는 방법을 안내합니다. 당신이 페이스 북을 얻을 필요가있는 경우

는 어떤 방법 당신이 특허 청구 범위에 사용할 수 있도록 Authenticated 방법에를 무시하고 사용자 지정 클레임에 저장할 필요가 아래의 코드로 dictuinatory 토큰 :

public class FacebookAuthProvider : FacebookAuthenticationProvider 
    { 
     public override Task Authenticated(FacebookAuthenticatedContext context) 
     { 
      context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); 
      return Task.FromResult<object>(null); 
     } 
    } 

그리고 당신은 전화 Startup.cs의이 클래스는 여기에 있습니다 :

+0

고마워, 나는 이것을 시도 할 것이다. Startup.Auth 클래스 (OnAuthenticated => 컨텍스트 등)에 대해 Microsoft에서 제공 한 코드가 상자 템플릿 없이도 해고되지 않는 이유는 무엇입니까? 그것은 userlogin하지만 클레임은 저장하지 않는 것 같습니다. – Raj

+0

여기에 답변이 없지만 작동해야합니다. 샘플 코드를 사용해보고 의견을 알려주십시오. –

+0

새로운 웹 프로젝트 템플릿에서 코드를 시도 했으므로 (지금은 간단하게 유지하기 위해). 그래서 필자는 문자 그대로 페이스 북 제공자를 추가하고, 키 등을 추가했으며, 다시 작동합니다. 오버라이드 메소드가 손상되었음을 알 수 있지만, 토큰에 대한 클레임을 저장하지 않습니다. 이 기능을 사용하기 위해 누락 된 부분이 있습니까? – Raj

관련 문제