From 8793912e7e4a82e8720d8c1c66870de94d7ee8de Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Mon, 18 May 2020 13:54:11 +0200 Subject: [PATCH] First cut - add subroutes --- .../src/providers/github/router.ts | 22 +++++++++++++++++++ .../src/providers/google/router.ts | 22 +++++++++++++++++++ plugins/auth-backend/src/service/router.ts | 19 ++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 plugins/auth-backend/src/providers/github/router.ts create mode 100644 plugins/auth-backend/src/providers/google/router.ts diff --git a/plugins/auth-backend/src/providers/github/router.ts b/plugins/auth-backend/src/providers/github/router.ts new file mode 100644 index 0000000000..a1c6efa64f --- /dev/null +++ b/plugins/auth-backend/src/providers/github/router.ts @@ -0,0 +1,22 @@ +import express from 'express'; +import Router from 'express-promise-router'; + +export const router = Router(); +router.get('/', async (_req: express.Request, res: express.Response) => { + res.send('initiate auth'); +}); + +router.get('/login', async (_req: express.Request, res: express.Response) => { + res.send('github provider login'); +}); + +router.get('/logout', async (_req: express.Request, res: express.Response) => { + res.send('github provider logout'); +}); + +router.get( + '/handler/frame', + async (req: express.Request, res: express.Response) => { + res.send('github provider frame response handler'); + }, +); diff --git a/plugins/auth-backend/src/providers/google/router.ts b/plugins/auth-backend/src/providers/google/router.ts new file mode 100644 index 0000000000..cb1c635602 --- /dev/null +++ b/plugins/auth-backend/src/providers/google/router.ts @@ -0,0 +1,22 @@ +import express from 'express'; +import Router from 'express-promise-router'; + +export const router = Router(); +router.get('/', async (_req: express.Request, res: express.Response) => { + res.send('initiate auth'); +}); + +router.get('/login', async (_req: express.Request, res: express.Response) => { + res.send('google provider login'); +}); + +router.get('/logout', async (_req: express.Request, res: express.Response) => { + res.send('google provider logout'); +}); + +router.get( + '/handler/frame', + async (req: express.Request, res: express.Response) => { + res.send('google provider frame response handler'); + }, +); diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index f238d973aa..dd9f4d00b9 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -17,6 +17,8 @@ import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; +import { router as googleAuthRouter } from './../providers/google/router'; +import { router as githubAuthRouter } from './../providers/google/router'; export interface RouterOptions { logger: Logger; @@ -32,9 +34,26 @@ export async function createRouter( res.status(200).send('pong'); }); + router.use('/:provider', authProviderSwitcher); + const app = express(); app.set('logger', logger); app.use(router); return app; } + +const authProviderSwitcher = async ( + req: express.Request, + res: express.Response, + next: express.NextFunction, +) => { + const provider = req.params.provider; + if (provider === 'google') { + return googleAuthRouter(req, res, next); + } else if (provider === 'github') { + return githubAuthRouter(req, res, next); + } else { + res.send('No such provider'); + } +};