gpt4 book ai didi

vue.js - 如何处理来自 Nuxt SSR 的 Passport js 重定向?

转载 作者:行者123 更新时间:2023-12-03 00:15:31 25 4
gpt4 key购买 nike

我正在使用带有快速 session 的 Nuxt SSR,并且我有来自服务器端的 Passport JS 重定向

/**
* POST /signup
* Create a new local account.
*/
exports.postSignup = (req, res, next) => {
const validationErrors = [];
if (!validator.isEmail(req.body.email)) validationErrors.push({ msg: 'Please enter a valid email address.' });
if (!validator.isLength(req.body.password, { min: 8 })) validationErrors.push({ msg: 'Password must be at least 8 characters long' });
if (req.body.password !== req.body.confirmPassword) validationErrors.push({ msg: 'Passwords do not match' });

if (validationErrors.length) {
req.flash('errors', validationErrors);
return res.redirect('/signup');
}
req.body.email = validator.normalizeEmail(req.body.email, { gmail_remove_dots: false });

const user = new User({
email: req.body.email,
password: req.body.password
});

User.findOne({ email: req.body.email }, (err, existingUser) => {
if (err) { return next(err); }
if (existingUser) {
req.flash('errors', { msg: 'Account with that email address already exists.' });
return res.redirect('/signup');
}
user.save((err) => {
if (err) { return next(err); }
req.logIn(user, (err) => {
if (err) {
return next(err);
}
res.redirect('/');
});
});
});
};

如果我调用重定向方法呢?它会重新加载页面并清除 Vuex 状态,对吗?我如何从 Passport 进行此重定向,以使 Vuex 状态保持完整并且客户端页面不会刷新

最佳答案

正如 @Darius 提到的,异步处理表单提交以避免页面刷新确实更好。但为了完整起见,我想提一下,确实存在持久保存 Vuex 状态的解决方案,例如 vuex-persistedstate 。它可用于将状态保存到 localStorage、sessionStorage 甚至 cookies。它也可以用作 Nuxt 插件。

关于vue.js - 如何处理来自 Nuxt SSR 的 Passport js 重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59510939/

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