Node.JS中的Facebook OAuth:存储访问令牌
我正在使用OAuth API实现与Facebook交互的后端。 首先,我交换访问令牌的授权码:
var accessTokenUrl = 'https://graph.facebook.com/v2.3/oauth/access_token'; var params = { code: req.body.code, client_id: req.body.clientId, client_secret: config.FACEBOOK_SECRET, redirect_uri: req.body.redirectUri }; request.get({ url: accessTokenUrl, qs: params, json: true }, function(err, response, accessToken) { ... });
我将需要访问令牌function请求到Facebook API(请求configuration文件信息,张贴到时间表等),所以我需要将其存储在服务器端的某个地方。 我可以这样做吗?
exports.access_token = access_token;
换句话说,对于与Node.JS的每个连接而言,exports.access_token都是唯一的,还是所有客户端都共享此variables(在这种情况下,我完全可以不这样做)?
我也使用JSON Web令牌,所以我也可以在请求令牌后做到这一点:
function createToken(accessToken) { var payload = { sub: accessToken, iat: moment().unix(), exp: moment().add(14, 'days').unix() }; return jwt.encode(payload, config.TOKEN_SECRET); }
为了使用特征请求令牌,我可以简单地做:
var token = req.headers.authorization.split(' ')[1]; var payload = jwt.decode(token, config.TOKEN_SECRET); var accessToken = payload.sub;
或者这也不可取? 我将使用JSONnetworking令牌的原因是因为我使用了Satellizer,它使用这个默认值。
你为什么不用passport-facebook
扩展名来使用passport
模块?
看到
我不明白, 我也使用JSONnetworking令牌…部分,因为这与您将从Facebook接收令牌无关。
- 通过Graph API将图像发布到Facebook页面时间轴
- 如何在我的应用程序中使用Facebooklogin
- 我在哪里可以find一个简单的Node.js Facebook应用程序示例?
- 后端服务器软件与PHP / MySQL / JS类似Facebook的聊天?
- User.findOrCreate不是一个函数passport-facebook
- 你可以使用Facebook的stream注释未使用ES6类关键字定义的类吗?
- Facebook持久性令牌和使用Node.js,Express和Passport“保持login状态”
- Angular – 看不到如何隐藏这个API Key
- Facebook Messenger API:发布请求返回错误500