Improved it a tad bit more

This commit is contained in:
Tiago Ribeiro
2023-04-12 17:28:52 +01:00
parent a0cce321d1
commit 399e222791
3 changed files with 7 additions and 12 deletions

View File

@@ -10,6 +10,7 @@ export default function useUser({redirectTo = "", redirectIfFound = false} = {})
const {data: user, mutate: mutateUser, isLoading} = useSWR<User>("/api/user", fetcher); const {data: user, mutate: mutateUser, isLoading} = useSWR<User>("/api/user", fetcher);
useEffect(() => { useEffect(() => {
console.log("HERE!!!");
// if no redirect needed, just return (example: already on /dashboard) // if no redirect needed, just return (example: already on /dashboard)
// if user data not yet there (fetch in progress, logged in or not) then don't do anything yet // if user data not yet there (fetch in progress, logged in or not) then don't do anything yet
if (!redirectTo || !user) return; if (!redirectTo || !user) return;

View File

@@ -9,13 +9,7 @@ const auth = getAuth(app);
export default withIronSessionApiRoute(logout, sessionOptions); export default withIronSessionApiRoute(logout, sessionOptions);
async function logout(req: NextApiRequest, res: NextApiResponse) { async function logout(req: NextApiRequest, res: NextApiResponse) {
signOut(auth) await auth.signOut();
.then(() => { req.session.destroy();
req.session.destroy(); res.status(200).json(undefined);
res.status(200).json({ok: true});
})
.catch(() => {
req.session.destroy();
res.status(500).json({ok: false});
});
} }

View File

@@ -10,17 +10,17 @@ export default withIronSessionApiRoute(user, sessionOptions);
async function user(req: NextApiRequest, res: NextApiResponse) { async function user(req: NextApiRequest, res: NextApiResponse) {
if (req.session.user) { if (req.session.user) {
if (!auth.currentUser) { if (!auth.currentUser) {
res.status(401).json({ok: false}); res.status(401).json(undefined);
return; return;
} }
if (req.session.user.id === auth.currentUser.uid) { if (req.session.user.id === auth.currentUser.uid) {
res.status(401).json({ok: false}); res.status(401).json(undefined);
return; return;
} }
res.json(req.session.user); res.json(req.session.user);
} else { } else {
res.status(401).json({ok: false}); res.status(401).json(undefined);
} }
} }