2015-01-14 4 views
0

안녕하세요, 저는 웹 페이지에서 Box.com에 사용자를 로그인하려고합니다. 나는 간단한 HTML 양식을 첫 번째 부분은 제출 수행이 잘 작동웹 페이지 HTML 또는 자바 스크립트에서 상자 액세스 토큰을 얻는 방법은 무엇입니까?

<form action="https://www.box.com/api/oauth2/authorize" type="POST" enctype="application/x-www-form-urlencoded"> 
    <input type="text" name="response_type" value="code"> 
    <input type="text" name="client_id" value="[REMOVED]"> 
    <input type="text" name="state" value="vexhax97td8xf_SomeTemporaryValueForTesting"> 
    <input type="submit"> 
</form> 

, 나는 자바 스크립트를 사용하여 쿼리 매개 변수에서 인증 코드를 얻을. 나는 그 (정식 코드가 페이지로드에 자바 스크립트에 의해 설정된다) 액세스 코드를 얻기 위해 같은 일을 시도 :

<form action="https://app.box.com/api/oauth2/token" type="POST" enctype="application/x-www-form-urlencoded"> 
    <input type="text" name="grant_type" value="authorization_code"> 
    <input id="auth-code" type="text" name="code" value=""> 
    <input type="text" name="client_id" value="[REMOVED]"> 
    <input type="text" name="client_secret" value="[REMOVED]"> 
    <input type="submit"> 
</form> 

하지만 "잘못된 grant_type 매개 변수 또는 매개 변수가 누락"오류 얻을. 플러스는 어쨌든 응답 json을 보여주는 좋은 사용자 경험이 아닙니다. 난 enctype="application/x-www-form-urlencoded"없이 그것을 시도하고 동일한 오류가 발생합니다.

상자 자습서는 분명히 웹 페이지에서 옵션이 아닌 컬을 사용하여 수행합니다. "Invalid ..."오류가 발생하지 않고 액세스 토큰을 얻는 방법은 무엇입니까? 그리고 자바 스크립트를 통해이 작업을 수행 할 수있는 방법이 있습니까?

답변

0

액세스 토큰 교환에 대한 인증 코드의 경우 "redirect_uri"매개 변수가 누락되었습니다. 그러나 이것은 실제 문제가 아닙니다.

교환은 서버 측에서 수행되어야하며 클라이언트 측 (브라우저)에서 수행해야합니다. 어쩌면 당신은 AJAX 호출에 의해 JSON 응답을 올바르게 처리 할 수 ​​있지만 box.com이 CORS를 허용하는 경우에만 (나는 의심 스럽다) 교환을 수행 할 수 있습니다.

이렇게하면 client_id와 client_secret가 웹 페이지에 노출됩니다 (왜 stackoverflow에 게시하는 것을 망설입니까?).