gpt4 book ai didi

node.js - hapijs-实验室 : Test a route with a valid session

转载 作者:搜寻专家 更新时间:2023-11-01 00:23:38 27 4
gpt4 key购买 nike

在我的 hapijs 应用程序中,我有一些路由需要 session,使用 hapi-auth-cookie 插件进行身份验证策略。我想为这些路线添加一些测试(通过 Lab )。

我找不到关于如何为这种情况设置测试(可能通过 before ?)的任何文档。任何帮助表示赞赏。提前致谢。

最佳答案

如果您只需要经过身份验证的用户,只需将用户分配给测试中的 credentials 属性即可:

var user = { ... };

server.inject({ method: 'GET', url: '/', credentials: user }, function (res) {
console.log(res.result);
});

这是一个演示它的例子:

var Bcrypt = require('bcrypt');
var Hapi = require('hapi');
var HapiAuthCookie = require('hapi-auth-cookie');

var server = new Hapi.Server();
server.connection({ port: 3000 });

var users = {
john: {
username: 'john',
password: '$2a$10$iqJSHD.BGr0E2IxQwYgJmeP3NvhPrXAeLSaGCj6IR/XU5QtjVu5Tm',
name: 'John Doe',
id: '2133d32a'
}
};

var validate = function (request, username, password, callback) {
var user = users[username];
if (!user) {
return callback(null, false);
}

Bcrypt.compare(password, user.password, function (err, isValid) {
callback(err, isValid, { id: user.id, name: user.name });
});
};

server.register(HapiAuthCookie, function (err) {
server.auth.strategy('session', 'cookie', {
password: 'secret',
validateFunc: validate
});

server.route({
method: 'GET',
path: '/',
config: {
auth: 'session',
handler: function (request, reply) {
reply('hello, ' + request.auth.credentials.name);
}
}
});

server.inject({ method: 'GET', url: '/', credentials: users.john }, function (res) {
console.log(res.result);
});
});

大部分示例取自 Authentication Tutorial .

关于node.js - hapijs-实验室 : Test a route with a valid session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955613/

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