gpt4 book ai didi

testing - 如何 stub (绕过)Sailsjs 身份验证策略以允许 Controller 测试?

转载 作者:行者123 更新时间:2023-11-28 20:51:31 24 4
gpt4 key购买 nike

我有一个 Sailsjs Controller 可以做一些事情,但目前它处于需要身份验证的策略下(即 isAuthenticated)。

在应用该策略之前,我的 Controller 的集成测试运行良好。现在它不起作用,因为它需要用户登录。

由于未说明的原因,我无法在每次测试前发出登录请求,因此我必须找到一种方法来跳过该策略。我想 stub 它所以它总是让路线通过。您将如何在 Sailsjs v0.12.11 中做到这一点?

最佳答案

您可以在 isAuthenticated 方法中添加 API key 并检查此 key 。如果 key 可用,则调用 next() 函数。

代码片段:

module.exports = function (req, res, next) {
if (req.isAuthenticated() || req.headers['api-key'] == 'apiKeyValue') {
return next();
} else {
if (!req.headers['api-key'] && !req.isAuthenticated()) {
return res.redirect('/auth/login');
} else {
res.status(403);
return res.json({
error: 'Invalid Api Key'
});
}
}

本质上,通过 header 传递 API key 并修改 isAuthenticated 函数中的逻辑。因此,只要 API key 可用,它就会调用 next() 回调。

关于testing - 如何 stub (绕过)Sailsjs 身份验证策略以允许 Controller 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44935968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com