2014-11-25 4 views
0

Node.js를 사용하여 일부 파일을 업로드하고 다운로드하고 있습니다.Dropbox API - Node.js - 인증 기억

인증 부분이 작동하지만 "앱"을 시작할 때마다 앱을 다시 인증해야합니다.

코드 :

<html> 
<title>Dropbox</title> 

<button id="signin-button">Sign in</button> 
<script> 
require("nw.gui").Window.get().maximize(true); 


var Dropbox = require("dropbox"); 

// Server-side applications use both the API key and secret. 
var client = new Dropbox.Client({ 
    key: "XXXXXXXXXXX", 
    secret: "XXXXXXXXXX" 
}); 

    client.authDriver(new Dropbox.AuthDriver.NodeServer(8191)); 


// Try to use cached credentials. 
client.authenticate({interactive: false}, function(error, client) { 
    if (error) { 
return showError(error); 
} 
    if (client.isAuthenticated()) { 
    // Cached credentials are available, make Dropbox API calls. 
    console.log("Authenticated form Cache"); 
    } else { 
// show and set up the "Sign into Dropbox" button 
var button = document.querySelector("#signin-button"); 
button.setAttribute("class", "visible"); 
button.addEventListener("click", function() { 
    // The user will have to click an 'Authorize' button. 
    client.authenticate(function(error, client) { 
    if (error) { 
     return showError(error); 
    } 
    console.log("Authenticated after button click."); 
    }); 
    }); 
    } 
}); 


function showError(error){ 
console.error(error); 
} 
</script> 
</html> 

인증 샘플 코드는 자신의 GitHub의에 있었다. 결코 인증 데이터를로드하거나 저장하지 않습니다.

tl; dr 사용자가 항상 로그인하지 못하도록 인증 데이터를 저장하려면 어떻게해야합니까?

제론은

답변

2

당신은 client.credentials().token를 통해 인증 후 액세스 토큰을 추출하고이를 지속 할 수 있습니다.

이어서 실행하면 new Dropbox.Client({ token: savedToken });을 사용하여 OAuth를 다시 거치지 않아도됩니다.

+0

효과가 있습니다. 고마워, 너는 내 하루를 보냈다 :)! –