From 838c2df336b4c0d7b5165c45a20d1a032e8d9e5c Mon Sep 17 00:00:00 2001 From: Andreas Date: Mon, 11 Mar 2024 03:18:44 +0100 Subject: [PATCH] resolved problem --- src/pages/api/auth/index.ts | 38 ++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/src/pages/api/auth/index.ts b/src/pages/api/auth/index.ts index 34040cf..8562e1e 100644 --- a/src/pages/api/auth/index.ts +++ b/src/pages/api/auth/index.ts @@ -27,7 +27,8 @@ type UserCredentials = { } async function verifyUserCredentials(req: NextApiRequest, res: NextApiResponse): Promise { - // let user = await MUser.findOne({ where: { username: username } }); + // let user = await MUser.findOne({ where: { username: username } });\ + const auth = getAuth(req) || ["", ""]; console.log(auth); let credentials: UserCredentials = { user: undefined, valid: false } @@ -51,12 +52,14 @@ async function verifyUserCredentials(req: NextApiRequest, res: NextApiResponse): credentials.valid = true; credentials.user = user; return credentials; + } async function GET(req: NextApiRequest, res: NextApiResponse) { let a = req.cookies; console.log(a); let credentials = { userid: req.query.userid, token: req.query.token }; + if(!credentials.token) return; let authtoken = await MAuth.findOne({ where: { token: credentials.token, @@ -75,15 +78,28 @@ async function GET(req: NextApiRequest, res: NextApiResponse) { // res.status(200).json(authtokens); } async function POST(req: NextApiRequest, res: NextApiResponse) { - - const credentials = await verifyUserCredentials(req, res); - if (!credentials || !credentials.valid || !credentials.user) + try{ + let cookie = req.cookies; + const credentials = await verifyUserCredentials(req, res); + if (!credentials || !credentials.valid || !credentials.user) + return; + const user = await MUser.findOne({ where: { username: credentials.user.username } }); + if (!user || !user.id) + return; + const auth = await MAuth.create({ user_id: user.id }); + if(!auth){ + res.status(401).end(); + // res.setHeader("cookie") + } + setCookie(res, 'authtoken', auth.token, { path: '/', maxAge: 2592000 }); + setCookie(res, 'user_id', auth.user_id, { path: '/', maxAge: 2592000 }); + res.status(200).send(auth); return; - const user = await MUser.findOne({ where: { username: credentials.user.username } }); - if (!user) + } + catch(error){ + res.status(401).json(error); return; - - res.status(200).json(await MAuth.create({ user_id: user.id })); + } } export default async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -91,9 +107,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) case 'GET': GET(req, res); break; case 'POST': - POST(req, res); break; - default: - res.status(404).end(); + POST(req, res); break; + default: + res.status(404).end(); break; } } \ No newline at end of file