我正在使用 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 如何保存身份验证数据以防止用户每次都必须登录。
杰罗恩
最佳答案
您可以在身份验证后通过 client.credentials().token
提取访问 token 并保留它。
然后在后续运行中,您可以使用 new Dropbox.Client({ token: savingToken });
以避免再次通过 OAuth。
关于javascript - Dropbox API - Node.js - 记住身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133278/