如何重定向到自定义URL与下一个认证登录后?
我有一个页面登录和内容。逻辑是这样的:
- 如果用户登录->显示页面内容
- 如果用户未登录->在同一页面显示登录表单
登录后,用户应该被重定向到他登录的同一页面,而不是他之前的页面
您需要使用重定向路径作为参数调用SignIn
和SignOut
函数,如下所示:
import { signIn, signOut } from "next-auth/react";
signIn({ callbackUrl: "/app" })
signOut({ callbackUrl: "/login" });
一种可能的解决方法是在您通过身份验证后在页面上重定向。
如果您的页面包含身份验证流(即siginIn())被称为Auth。Tsx,包括以下代码:
// Authentication Redirect
const router = useRouter()
const {data: session} = useSession()
if (session) {
router.push('/')
}
一旦用户回到该页面并通过身份验证,他们将自动被重定向。
你可能会发现有用的东西。我用它在页面之间自动重定向。
import { useHistory } from 'react-router-dom'
function foo() {
const history = useHistory()
// usage:
history.push('url_to_redirect_to')
// example: history.push('/') or history.push('/about')
}