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

我正试图使用​​Node.js从Pocket API获取和存储访问令牌。 我能够获取请求令牌,redirect到Pocketlogin页面,redirect回我的网站,并最终能够交换请求令牌的访问令牌。

但这是我的问题所在。 我不知道如何去实际存储令牌,没有它,我无法进行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,但似乎没有工作。 当然,我可能刚刚实施他们错了。

非常感谢您的帮助。

如何存储访问令牌通常取决于您将使用API​​的位置。

我通常喜欢在与其关联的用户文档中的数据库(如MongoDB)中持久存储令牌,然后,如果Web客户端需要令牌,则可以通过RESTful端点对我的服务器执行ping操作。 这样,如果用户清除浏览器上的所有状态,则不必再次通过整个OAuthstream程。

你应该可以使cookies的事情工作。 选项2是使用localStorage,但如果你正在努力使用cookies,我不会尝试沿着这条path – 它让你更多地控制令牌传送的时间,但是还需要更多的工作来使你的服务器端和客户端代码坐标。

Interesting Posts