2014-05-23 2 views
0

먼저 정적 HTML과 javascript 및 C# Web API를 사용하고 있습니다. 그래서 나는 나의 HTML 파일에, 만일 OAuth2를 서버를 호출하는 링크가 지금은 확인 작동하는 것 같다내 oauth2 콜백 페이지가 동일한 html 페이지가 될 수 있습니까? 어떻게 토큰을 얻을 수 있습니까?

을 index.html을하는 콜백 페이지를 설정하는 것입니다, 그리고 그것은 인덱스로 전송됩니다 index.html을 말 .html? code = 125f0 ...

그래도 괜찮습니까? 아니면 별도의 콜백 페이지가 필요합니까? 코드, 토큰입니까?

어떻게 이것을 소비해야합니까? 자바 스크립트가 콜백에 부딪치지 않는 것 같습니다. 편집, 실제로 자바 스크립트는 다시 호출에 치여 것 같다하지만 난에서 정의되지 않은 아무것도받지 못했습니다 : 또한

$(function() { 
     var params = {}, 
      queryString = location.hash.substring(1), 
      regex = /(^&=]+)=([^&*])/g, 
      m; 
     while (m = regex.exec(queryString)) { 
      params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
     } 
     if (params.error) { 
      if (params.error == "access_denied") { 
       sAccessToken = "access_denied"; 
       //alert(sAccessToken); 
      } 
     } else { 
      sAccessToken = params.code; 
      alert(sAccessToken); 
     } 
    }); 

을 내 콜백 페이지가 C#을 웹 API 호출을 할 수 있는가? 그런 식으로 토큰을 보냅니다. 나는 사용자 에이전트가 어떤 것을 전송 하는지를 결코 알지 못한다고 추측하고있다. 당신이 어떻게 든 ID를 전달하고 신호를 사용하지 않으면 다시 통신 할 수 없다. javascript로 가져 와서 웹 API에 토큰을 보내는 것이 좋습니다. 그런 다음 토큰이 있으면 웹 API에서 리소스에 대한 호출을 수행 할 수 있습니까?

죄송합니다, 아직 학습 중입니다.

답변

1

OAuth2에는 다양한 "프로필"이 있습니다. "Authorization Code Grant"플로우 (사용중인 것)는 토큰에 대한 코드를 교환하는 서버 측 구성 요소가 필요합니다.

단일 페이지 응용 프로그램은 일반적으로 암시 적으로 흐름을 사용합니다. 간단한 설명은 여기를 참고하십시오 : https://docs.auth0.com/protocols#5 ("Auth0"에 대한 참조는 무시하십시오. 기본 프로토콜은 구현에 관계없이 동일합니다).

두 흐름의보다 철저한 설명은 여기를 참조하십시오 : What is the difference between the 2 workflows? When to use Authorization Code flow?

0

죄송합니다, 그것은 이상한 질문과 나쁜 표현의 할까이었다. 하지만 결국 코드를 ​​취하는 HTML 콜백 페이지를 만든다. 창에서 OAuth2 서버 페이지를 팝업 한 다음 콜백 페이지를 호출합니다. 그런 다음 내 콜백 페이지가 창을 닫고 코드를 다시 부모 페이지로 전달합니다.

관련 문제