javascript - 如何存储从OAuth获得的access_token以供以后使用?

标签 javascript node.js oauth pocket

我正在尝试使用 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/

相关文章:

javascript - 为什么在 ng-click 之后间隔不起作用?

javascript - 将字符串参数从 node.js 传递到 C++ 代码(使用 SWIG)

java - 应用引擎 : Could not verify SSL certificate for URL

ios - Swift/iOS FirebaseGoogleSignIn OAuth 客户端 ID 未找到

javascript - 如何获取 html Canvas 上的笔位置?

javascript - 配置 grunt 复制任务以排除文件/文件夹

node.js - 运行 ImageMagick 的 NodeJs 转换目录中的所有图像

android - 如何保护 OAuth 消费者 secret 的安全,以及当它被泄露时如何 react ?

javascript - Bootstrap 切换在动态添加时显示不佳

node.js - NodeJS,要求进程返回未定义