现在,登录路径。/auth/login
只允许从其他门户网站登录,而不允许从Swagger登录。如果我尝试通过Swagger登录,即使有正确的凭证,我也会得到这个错误。
"消息": "无效的csrf令牌"
我必须想办法让Swagger登录,但又不能破坏现有的路由。
app.post('/auth/login',[csrfProtection], controllers.auth.login);
上面是我的登录路径。
我如何让我的Swagger登录来获取token?而又不会因为CSRF攻击而破坏我的登录路径?
任何建议都会给我很大的帮助。
我找到了一个解决方案
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
.