I am getting this error when I am trying to see if a User is currently logged into a session. I am using Next14 with Typescript.
I am using client-side functions for both the Account creation and the SignUp page. (If the user is signed in already and goes to sign up, it should just route them to their account page.)
// inside of my SignUp page.tsx
const getSession = () => {
// this is where the error is getting thrown
account.get().then((res) => {
setSession(res);
}).catch((e) => {
console.log(e);
})
}
useEffect(() => {
getSession();
if (session) {
router.push("/my-account")
}
}, []);
I am a little confused on how the account/user scopes work when youre trying to check for a logged in user that is not logged in?
Please don't tag people as it can be disruptive. Please just wait
apologies!
async function init() {
try {
const loggedIn = await account.get();
setUser(loggedIn);
} catch (err) {
setUser(null);
}
}
according to the own docs, you just catch the error and set the user to null if there is an error?
strange
No worries!
const [user, setUser] = useState<Models.User<Models.Preferences> | null>(null);
const [session, setSession] = useState<Models.Session>();
const router = useRouter();
const handleSignUp = () => {
setLoading(true);
signUp(email, password).then((res) => {
setError("");
setLoading(false);
account.createEmailPasswordSession(email, password).then((sesh) => {
setSession(sesh);
})
router.push("/my-account")
}).catch((e: AppwriteException) => {
setError(e.message);
setLoading(false);
});
}
const getUser = async () => {
getAccount().then((res) => {
setUser(res);
}).catch((e) => {
setUser(null);
})
}
useEffect(() => {
getUser().then(() => {
if (user) {
router.push("/my-account");
}
});
}, [user]);
for anyone who comes against this problem in the future, this seems to work
i cant say as to why the design works like this
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [error, setError] = useState("");
const [loading, setLoading] = useState(false);
const [session, setSession] = useState<Models.Session>();
const router = useRouter();
const handleSignUp = () => {
setLoading(true);
signUp(email, password).then((res) => {
setError("");
setLoading(false);
account.createEmailPasswordSession(email, password).then((sesh) => {
setSession(sesh);
})
router.push("/my-account");
}).catch((e: AppwriteException) => {
setError(e.message);
setLoading(false);
});
}
useEffect(() => {
getAccount().then((res) => {
router.push('/my-account')
}).catch((e) => {
// do nothing
});
}, []);
Even shorter version
Recommended threads
- Invalid token passed in the request
Hello, I have an issue using updateMagicURLSession. I send the email using sendMagicLink, which works fine. When i click the link in the email i get the invali...
- how can i make a relationship between a ...
i want to relate the $id from users auth table in appwrite with other column in my table user_profile. because is the same user... how can i have exactly the s...
- Google login on mobile not working
Hi the gg login auth in mobile not working. No error show. But the user couldnt login in Attached is the video. Desktop is working well and im using custom doma...