如何修复node-linkedin中的CSRF问题?

时间:2015-07-29 06:39:15

标签: node.js oauth-2.0 npm linkedin csrf

我正在使用node-linkedin来访问我的网络应用程序。

问题

Error { [CSRF Alert: Possible CSRF attack, state parameters do not match.] name: 'CSRF Alert' }

代码

 var Linkedin = require('node-linkedin')('apikey', 'secret', 'callback');

 Linkedin.auth.getAccessToken(res, req.query.code, req.query.state, function (err, results) {

   if(err){
     return console.error("Error", err);
   }

    return res.redirect('/index');
 });

解决此问题的任何建议

1 个答案:

答案 0 :(得分:0)

找出库的问题。

当我将nodejs应用程序扩展为使用2个以上的实例时,会出现错误,

Error { [CSRF Alert: Possible CSRF attack, state parameters do not match.] name: 'CSRF Alert' }

由于auth.js中的“states”参数正在使用内存存储,因此会产生扩展应用程序的问题。

情景是

'/ oauth / linkedin'转到 App-0 (创建状态参数“xxxx”+存储在内存中) '/ oauth / linkedin / callback'转到 App-1 (这里它将检查收到的状态是否为“xxxx”+检查是否在内存中)

记录的问题here

在nginx中使用粘性会话暂时解决此问题。