2012-10-24 4 views
1

저는 Simperium과 Javascript API를 사용하는 초보자입니다.Simperium JS 로그인 실패

권한 부여를 사용하여 액세스 토큰을 얻었지만 새 Simperium (...)을 만들 때 '인증'오류가 발생하여 새로운 토큰을 얻으려고 시도 했으므로 오류 코드 400 또는 401이 반환되지 않습니다.

이것은 KEY는 API 키는 내 코드, ID 응용 프로그램 ID입니다, 사용자 및 PASS 사용자 이름과 비밀번호 ...

권한은 다음과 같습니다

var url,request,response,json,token,auth; 
url="https://auth.simperium.com/1/"+appID+"/authorize/"; 
request=new XMLHttpRequest(); 
request.onreadystatechange=function() { 
    if(request.readyState===4) { 
     if(request.status===200) { 
      response=request.responseText; 
      console.log('response: '+response); 
      if(response.length>0) { 
       json=JSON.parse(response); 
       token=json.access_token; 
       ... 
      } 
     } 
     else { 
      console.log('ERROR'); 
      return null; 
     } 
    } 
}; 
request.open("POST",url,true); 
request.setRequestHeader("X-Simperium-API-Key",'"'+KEY+'"'); 
request.setRequestHeader("Content-type", "application/json"); 
auth='{"username": "'+USER+'", "password": "'+PASS+'"}'; 
request.send(auth); 

이 400에 실패하거나 401!

var options="{token: '"+ACCESS_TOKEN+"'}"; 
var simperium=new Simperium(ID,options); 
var bucket=simperium.bucket('ledger'); 
bucket.on('notify',function(id,data) { 
    console.log("transaction updated: "+data); 
    ... 
}); 
bucket.on("error", function(error) { 
    console.log("Simperium error : "+error); 
    if (error == "auth") { 
     console.log("auth error, need to reauthenticate and get new access token") 
     ... 
    } 
}); 
bucket.start(); 

이는 "인증"오류가 발생했습니다 : 내가 access_token이 있었다

.

답변

1

몇 가지, API 키에 요청 헤더를 설정하기 위해 템플릿에서 이것을 렌더링하지 않는 한 api 키 주위에 따옴표를 추가하지 않아도됩니다. 당신이 액세스 토큰이 있으면 옵션 개체를 설정할 때

request.setRequestHeader("X-Simperium-API-Key","abcdefg"); 

는, 대신 문자열의 개체를 전달해야합니다 : 키가 ABCDEFG 된 경우처럼 보일 것입니다

var options={token: "ACCESS_TOKEN"};