1

OAuth2를 통한 인증이 필요한 Windows Store 앱을 만들려고합니다.WinRT - OAuth2 액세스 토큰 받기

선호하는 방법은 WebAuthenticationBroker해야한다 :

const string url = @"https://my.server.srv/mobile-auth/index.pl?" 
          + "client_id=CLIENTID" 
          + "&redirect_uri=https%3A%2F%2Fmy.server.srv 
          + "&response_type=code" 

Uri startUri = new Uri(url); 
Uri endUri = new Uri("https://my.server.srv"); 

WebAuthenticationResult webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, startUri, endUri); 
if (webAuthenticationResult.ResponseStatus == WebAuthenticationStatus.Success) 
{ 
    string token = webAuthenticationResult.ResponseData; 
} 

하지만 토큰은 비어 있습니다. 서버 응답이 있어야합니다.

code=a-secret-code&expires_in=600&token_type=bearer 

은 OAuth2에 적합합니다.

매개 변수를 가져 오는 방법을 알고 계십니까?

편집 : 해결되었습니다. redirect_uri/endUri로 "https : // localhost"를 전달한 후 작동하기 시작했습니다.

+0

는 서버가 다른 방법이나 도구를 사용하여 적절한 응답을 (반환되는지 확인 했 -

플리커 아마 (! 사진과 함께) 최선의 요약 설명의 OAuth 프로세스가 작동하는 방법이있다 ie Fiddler)? 문제가 WebAuthenticationBroker인지 확인할 수 있습니까? – villecoder

+0

예. 코드 조각 (code = a-secret-code ... _type = bearer)은 Firefox 및 Chrome 브라우저에서 테스트 한 것입니다. (나는 서버의 이름과 그 접근 코드를 숨겼다.) 나의 문제는 WebAuthenticationBroker에게만 알려졌다. – eMko

답변

0

해먹과 같은 라이브러리를 사용하는 것이 좋습니다.

일반적으로 OAuth2의 경우 모든 후속 요청과 관련된 요청 토큰을 얻기위한 요청을 먼저 수행합니다. 그런 다음 해당 토큰을 매개 변수와 함께 사용하여 인증 요청을 수행 한 다음 대응할 수있는 응답 객체를 반환 할 수 있습니다. http://www.flickr.com/services/api/auth.oauth.html

행운

+0

응답 해 주셔서 감사합니다. 나는이 프로세스가 어떻게 작동 하는지를 알고있다 (그리고 그 페이지에 따르면 Flickr는 OAuth 1이 아니라 OAuth 2를 사용하고있는 것으로 보인다). 해먹 또는 해먹 2 웹 사이트 또는 괜찮은 문서를 찾을 수 없어서 정확히 무엇을하는지 모릅니다. 하지만 REST 라이브러리 일 뿐이라면 나에게는 쓸모가 없다. Win Store 앱의 사용자에게 로그인 페이지를 표시하고, 로그인하여 토큰을 가져와야합니다. 이것이 바로 WebAuthenticationBroker가해야 할 일입니다. – eMko

관련 문제