我面临的主要问题是,每当我在获取函数之外调用重定向时,它都能工作,但一旦我将该重定向放在获取函数的响应中,它就不会重定向页面。your text
。
我试着允许google sign up为用户创建帐户。如果用户使用google sign in,它允许用户进入newaccount.js文件。一旦进入该路径,它会检查数据库中是否存在google用户名。如果存在,它会将用户重定向到主页。如果不存在,它会要求用户输入密码,并将用户名和密码保存在数据库中。
代码:
export async function getServerSideProps({ req, res }) {
const session = await getSession({ req })
// console.log("this first runs")
// console.log(session)
if (!session) {
console.log("this not running")
return {
redirect: {
destination: '/',
permanent: false
}
}
} else {
let username = session.user.name
let email = session.user.email
let body = { username, email }
await fetch("http://localhost:3000/api/checkuser", {
method: "POST",
body: JSON.stringify(body),
}).then((res) => res.json())
.then((result) => {
console.log(result)
if (result.success == true) {
if (result.exists == false) {
console.log("user added success fully")
} else {
return {
redirect: {
destination: '/',
permanent: false
}
}
}
} else {
console.log("something went wrong")
}
});
}
return {
props: { session }
}
}
1条答案
按热度按时间lztngnrs1#
您的代码没有在
else
语句中返回redirect
。解决此问题的一种方法是对所有异步操作执行await
-ing,如下所示: