如何让用户通过Swagger用CSRF TOken登录?

问题描述 投票:0回答:1

enter image description here

现在,登录路径。/auth/login 只允许从其他门户网站登录,而不允许从Swagger登录。如果我尝试通过Swagger登录,即使有正确的凭证,我也会得到这个错误。

"消息": "无效的csrf令牌"

enter image description here

我必须想办法让Swagger登录,但又不能破坏现有的路由。

app.post('/auth/login',[csrfProtection], controllers.auth.login);

上面是我的登录路径。

我如何让我的Swagger登录来获取token?而又不会因为CSRF攻击而破坏我的登录路径?

任何建议都会给我很大的帮助。

javascript node.js swagger csrf swagger-ui
1个回答
0
投票

我找到了一个解决方案

app.post('/auth/login', (req, res, next) => req.get('Origin') === new URL(process.env.PORTAL).origin ? next() : csrfProtection(req, res, next) , controllers.auth.login);

这将防止保存的 csrfProtection 在其他产地,只允许从 Swagger.

© www.soinside.com 2019 - 2024. All rights reserved.