我是expressjs和passportjs的初学者.我通过Google使用GoogleStrategy的护照进行身份验证.使用下面的代码我在/ users/hello路由处理程序中有req.user = {id:'123456'},但是我希望在没有会话支持的情况下得到一些这样的代码来将其作为经过身份验证的客户端的答案发送.换句话说,如果身份验证成功,我想向客户端发送一些令牌,而不启动cookie会话.当我关闭会话时,我找不到如何将用户对象转发到目标路由处理程序的方法.
passport.use(new GoogleStrategy({
returnURL: 'http://localhost/auth/google/return',
realm: 'http://localhost/'
},
function(identifier, profile, done) {
done(null, {id: '123456'});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
done(null, {id: id});
});
app.use(session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.get('/auth/google', passport.authenticate('google');
app.get('/auth/google/return',
passport.authenticate('google', {
successRedirect: '/users/hello',
failureRedirect: '/users/goodbye'
}));
Run Code Online (Sandbox Code Playgroud) 我在客户端和服务器端JavaScript应用程序开发方面有一些经验.但现在我在php上设计我的第一个Web应用程序并寻找最佳的开发工具堆栈.我使用phinx在测试,开发和生产环境之间共享我的数据库结构.我将使用codeception进行数据库操作测试.
问题是代码期望我将表创建sql命令放入tests/_data/dump.sql并删除我在phinx迁移文件中创建的所有表.我可以设置cleanup: false在codeception.yml,但我将不得不在这种情况下,每个测试之前清理数据库表.我不知道怎么做.在代码中的每次测试之前,我没有发现手动清理db的能力.
我如何获得代码和phinx协调?
PS:我发现有关在代码中使用迁移的讨论,似乎并不是每个人都能看到它的好处.