Improved it a tad bit more
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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({ok: true});
|
res.status(200).json(undefined);
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
req.session.destroy();
|
|
||||||
res.status(500).json({ok: false});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user