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接收令牌无关。