我正在尝试使用 NodeJS 的 FB API +everyauth 模块为用户获取 access_token,然后我将使用 Facebook_Graph_API 模块发出服务器端图形 API 请求以实际发出请求(这需要访问令牌)。
根据everyauth页面:
然后,在您的视图中,您将可以访问附加到帮助器的以下帮助器方法
everyauth
:
everyauth.loggedIn
everyauth.user
- 与会话关联的用户文档everyauth.facebook
- 相当于存储在的内容req.session.auth.facebook
,因此您可以执行...everyauth.facebook.user
- 返回从 OAuth 提供者提供的用户 json。everyauth.facebook.accessToken
- 代表用户返回 OAuth 提供者为授权 API 调用提供的 access_token。- 您还可以为其他模块获得这种模式 - 例如,,
everyauth.twitter.user
等everyauth.github.user
。
在我的 .jade 模板中,我可以很好地提出请求:
- if (everyauth.facebook)
h3 Facebook User Data
p= JSON.stringify(everyauth.facebook.user)
p= 'facebook access token is '+ everyauth.facebook.accessToken
我的问题是,如何从服务器端 javascript 获取访问令牌?我注意到在
app.get('/', function (req, res) {
res.render('home');
console.log(req.sessionStore.sessions.);
});
req 对象确实包含 access_token 值,但相应的 JSON 解析起来非常笨拙,并且对于许多 API 来说并不实用。有什么方法可以简单地使用everyauth从服务器检索access_token?
假设我可以简单地使用一点 AJAX 并将everyauth.facebook.accessToken 从客户端发送回服务器,但我觉得这有点不切实际。