2017-04-30 10 views
0

현재 OAuth2의 OAuth2 서버를 배우고 있으며 OWIN에서 이러한 종류의 서버를 쉽게 구현할 수있는 좋은 해결 방법을 제공합니다. 샘플이 좋은 작품처럼 https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server인증 코드에서 액세스 토큰을 교환 할 수 없습니다

가 보인다,하지만 난 우체부를 통해 액세스 토큰 인증 코드를 교환하려고 할 때 실패했습니다 :

나는 마이크로 소프트 예를 시도했다.

나는 POST 헤더 Content-Type=application/x-www-form-urlencoded와 방법 및 요청 본문에서 다음 PARAMS 사용 :

grant_type=authorization_code 
client_id=7890ab 
redirect_uri=http%3A%2F%2Flocalhost%3A50150%2Fcallback%2F 
code=d7a91a351ffa4764a22ef3628c94d495443e0043bfc9405b9f1c5113a234a23d 
client_secret=7890ab 

내가 디버거를 통해 추적을 프로세스에 전달 이벤트 ReceiveAuthenticationCode을 발견하고 티켓/직렬화 복원 정착되어 있어야합니다.

그러나 아무리 노력해도 결과는 항상 invalid_grant입니다.


나는 그것을 성공 WebServerClient으로 액세스 토큰을 얻을 수있는 원래의 샘플로 보았다. 그러나 제 목적은 .Net 클라이언트에만 국한되지 않는 서비스를 제공하는 것이므로 라이브러리가없는 토큰을 검색 할 수 있도록해야합니다.

누구에게 의견이 있습니까?


나는 64 문자열 Nzg5MGFiOjc4OTBhYg==의 기반이 7890ab:7890ab에 클라이언트 ID & clientSecret를 연결 문자열을 인코딩 한 1

업데이트는 시도 2 ​​주 후에 아무

답변

0

을 변경하지 Authorization=Basic Nzg5MGFiOjc4OTBhYg== 헤더에 추가 , 나는 내가 기본적인 부분에서 잘못되었다는 것을 발견했다. 나는이 문제에 직면 한 다음 프로그래머들의 시간을 절약하기를 희망한다. 코드 이득 HTTP POST 방법으로 Access Token 대한 거래가는 redirect_uri 값 후

HTTP GET 방법으로 Authorization Code 갈 때 redirect_uri 값하지만 (예 http%3A%2F%2Flocalhost%3A50150%2Fcallback%2F)

인코딩되어야 요청 본문에 이 인코딩되어서는 안되며 값은 http://localhost:50150/callback/이어야하며이 부분이 invalid_grand 반환을 유발합니다.

주 : redirect_uri의 값은 요청 사이 같아야 상기 Authorization Code을 요청할 때 URI가 선행하는 경우 http://로 의미 나 / 끝나는,이 부분도 존재 Access Token

요청해야

참조 : 다음 데모가 MSDN보다 더 명확합니다. https://github.com/yuezhongxin/OAuth2.Demo