【发布时间】:2012-05-27 01:31:35
【问题描述】:
我正在尝试使用 FB API + 用于 NodeJS 的everyauth 模块为用户获取 access_token,然后我将使用 Facebook_Graph_API 模块发出服务器端图形 API 请求以实际发出请求(这需要访问令牌)。
根据everyauth页面:
然后,在您的视图中,您将可以访问以下内容 附加到 helper 的 helpers 方法,
everyauth:
everyauth.loggedIneveryauth.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 从客户端发送回服务器,但我觉得这有点不切实际。
【问题讨论】:
标签: javascript facebook node.js facebook-access-token everyauth