我正在尝试使用 Node.js 从 Pocket API 获取并存储访问 token 。我能够获取请求 token ,重定向到 Pocket 登录页面,重定向回我的网站,最后能够将请求 token 交换为访问 token 。
但这就是我的问题所在。我不知道应该如何实际存储 token ,如果没有它,我将无法进行 API 调用(当然)。相关代码如下:
//called when Pocket API redirects back to /getAccessToken
function getAccessToken(response, requestToken) {
restler.post("https://getpocket.com/v3/oauth/authorize", {
headers: { "Content-Type" : "application/json",
"X-Accept" : "application/json" },
data : JSON.stringify({consumer_key:CONSUMER_KEY,code:requestToken})
}).on("complete", function(data, res) {
if(res.statusCode == 200) {
var accessToken = data.access_token;
console.log("Access granted: " + accessToken);
//BUT HOW DO I STORE THE ACCESS TOKEN FOR USE OF API CALLS ??
}
response.writeHead(307, {Location: DNS}); //go back to site
response.end();
});
};
我想我应该将 accessToken 存储在客户端,但我实际上不知道如何去做。我尝试过使用 cookie,但似乎不起作用。当然,我可能只是错误地实现了它们。
非常感谢您的帮助。
最佳答案
如何存储访问 token 通常取决于您将在何处使用 API。
我通常喜欢将 token 保留在与其关联的用户文档上的数据库(如 MongoDB)中,然后如果我的 Web 客户端需要 token 来执行任何操作,则可以 ping 我的服务器(通过 RESTful 端点)。这样,如果用户清除浏览器上的所有状态,您就不必再次执行整个 OAuth 流程。
关于javascript - 如何存储从OAuth获得的access_token以供以后使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046669/