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

标签 node.js oauth-2.0 npm linkedin csrf

我正在使用 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/

相关文章:

angular - Azure AD 是否支持针对单页应用程序使用 PKCE 的授权代码流

kubernetes - Oauth2-Proxy 不传递 X-Auth-Request-Groups header

git - 使用标签从 github 安装 NPM

node.js - 跨环境/dist/index.js :42 unexpected token }

css - Node.js 本地服务器 css 文件不注入(inject)

node.js - MySQL knex 数学运算

android - 使用 node-gcm 将负载通知发送到 android 设备

node.js - NodeJS 的 PhantomJS 桥 : paperSize do not work correctly

node.js - Ebay oauth "Input request parameters are invalid."获得用户同意

node.js - nodejs/electron-forge/node-gyp : Could not find any Visual Studio installation to use after trying all the tips I could find online