Nuxt3中@sidebase/nuxt-auth模块:登录成功后执行回调函数
解决@sidebase/nuxt-auth 0.6.0-beta.6登录成功后执行自定义代码的问题
由于signIn默认会在登录成功后自动重定向,导致后续代码无法执行,你可以通过以下两种方式解决:
方法一:阻止自动重定向,手动处理流程
调用signIn时传入redirect: false关闭自动重定向,登录成功后先执行自定义代码,再手动跳转:
const { signIn } = useAuth() const router = useRouter() const handleLogin = async () => { // 关闭自动重定向 const loginResult = await signIn({ username, password, redirect: false }) if (loginResult?.ok) { // 这里执行你的自定义函数/代码 console.log('登录成功,执行自定义逻辑') // 手动跳转到目标页面,可替换为你的路由地址 await router.push('/dashboard') } else { // 处理登录失败逻辑 console.error('登录失败,请检查账号密码') } }
方法二:监听登录状态变化
通过监听auth模块的状态,当用户状态变为已认证时执行代码(适用于所有触发登录的场景,包括页面刷新后自动登录):
const { status } = useAuth() watch(status, (newStatus) => { if (newStatus === 'authenticated') { // 登录成功后执行自定义代码 console.log('用户已登录,执行自定义逻辑') } }, { immediate: true })
内容的提问来源于stack exchange,提问作者zoltalar
相关产品推荐
相关产品推荐

