我正在使用 node-linkedin用于从我的 Web 应用程序访问 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');
});
解决这个问题的任何建议
最佳答案
发现库有问题。
当我扩展我的 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 中使用粘性 session 暂时解决此问题。
关于node.js - 如何修复 node-linkedin 中的 CSRF 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31692993/