From 1cb0873ce8bd88772712d198295c4ce2073b3b67 Mon Sep 17 00:00:00 2001 From: Fabian Stamm Date: Sat, 12 Oct 2019 18:29:00 +0200 Subject: [PATCH] Adding $local callback endpoint --- src/api/oauth/auth.ts | 6 +++++- src/views/views.ts | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/api/oauth/auth.ts b/src/api/oauth/auth.ts index dbcce8d..ec513c3 100644 --- a/src/api/oauth/auth.ts +++ b/src/api/oauth/auth.ts @@ -12,6 +12,8 @@ import { ObjectID } from "bson"; const AuthRoute = Stacker(GetUserMiddleware(true), async (req: Request, res: Response) => { let { response_type, client_id, redirect_uri, scope, state, nored } = req.query; const sendError = (type) => { + if (redirect_uri === "$local") + redirect_uri = "/code"; res.redirect(redirect_uri += `?error=${type}&state=${state}`); } /** @@ -63,7 +65,9 @@ const AuthRoute = Stacker(GetUserMiddleware(true), async (req: Request, res: Res }); await ClientCode.save(code); - let ruri = client.redirect_url + `?code=${code.code}&state=${state}`; + let redir = client.redirect_url === "$local" ? "/code" : client.redirect_url; + + let ruri = redir + `?code=${code.code}&state=${state}`; if (nored === "true") { res.json({ redirect_uri: ruri diff --git a/src/views/views.ts b/src/views/views.ts index 6a31114..9bb2638 100644 --- a/src/views/views.ts +++ b/src/views/views.ts @@ -34,6 +34,14 @@ ViewRouter.get("/login", (req, res) => { res.send(GetLoginPage(req.__)) }) +ViewRouter.get("/code", (req, res) => { + res.setHeader("Cache-Control", "no-cache"); + if (req.query.error) + res.send("Some error occured: " + req.query.error); + else + res.send(`Your code is: ${req.query.code}`); +}) + ViewRouter.get("/admin", GetUserMiddleware(false, true), (req: Request, res, next) => { if (!req.isAdmin) res.sendStatus(HttpStatusCode.FORBIDDEN) else next()