Implemented a simple authentication scheme with Firebase and Iron Session

This commit is contained in:
Tiago Ribeiro
2023-04-12 16:53:36 +01:00
parent cb1a67de23
commit 58bdc745e4
16 changed files with 1371 additions and 33 deletions

27
src/pages/api/user.ts Normal file
View File

@@ -0,0 +1,27 @@
import {app} from "@/firebase";
import {sessionOptions} from "@/lib/session";
import {getAuth} from "firebase/auth";
import {withIronSessionApiRoute} from "iron-session/next";
import {NextApiRequest, NextApiResponse} from "next";
const auth = getAuth(app);
export default withIronSessionApiRoute(user, sessionOptions);
async function user(req: NextApiRequest, res: NextApiResponse) {
if (req.session.user) {
console.log(auth.currentUser);
if (!auth.currentUser) {
res.status(401).json({ok: false});
return;
}
if (req.session.user.id === auth.currentUser.uid) {
res.status(401).json({ok: false});
return;
}
res.json({user: req.session.user});
} else {
res.status(401).json({ok: false});
}
}