diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 18f6b27a..61cde58d 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -13,7 +13,6 @@ "@tailwindcss/forms": "^0.2.1", "autoprefixer": "^10.2.4", "classnames": "^2.2.6", - "cookie": "^0.4.1", "dayjs": "^1.10.4", "express-jwt": "^6.0.0", "formik": "^2.2.6", diff --git a/packages/dashboard/src/pages/api/redirect.js b/packages/dashboard/src/pages/api/accounts/authenticate.js similarity index 54% rename from packages/dashboard/src/pages/api/redirect.js rename to packages/dashboard/src/pages/api/accounts/authenticate.js index 58cecb4b..37ac3f5d 100644 --- a/packages/dashboard/src/pages/api/redirect.js +++ b/packages/dashboard/src/pages/api/accounts/authenticate.js @@ -1,21 +1,19 @@ import superagent from "superagent"; export default async (req, res) => { - console.log(Object.keys(req)); - console.log(req.url); - console.log(req.cookies); - console.log(req.rawHeaders); + if (!req.cookies.ory_kratos_session) { + res.redirect(302, "/auth/login"); // redirect to login page if kratos session is missing + } + try { const auth = await superagent .get("http://oathkeeper:4455/user") .set("cookie", `ory_kratos_session=${req.cookies.ory_kratos_session}`); - console.log(auth.header); - res.setHeader("Set-Cookie", auth.header["set-cookie"]); } catch (error) { - console.log(error); + res.redirect(302, "/error"); // credentials were correct but accounts service failed } - res.redirect(302, req.query.return_to); + res.redirect(302, req.query.return_to ?? "/"); }; diff --git a/packages/dashboard/src/pages/auth/login.js b/packages/dashboard/src/pages/auth/login.js index 1c24534a..bb307f97 100644 --- a/packages/dashboard/src/pages/auth/login.js +++ b/packages/dashboard/src/pages/auth/login.js @@ -8,7 +8,7 @@ const kratos = new PublicApi(new Configuration({ basePath: config.kratos.public export async function getServerSideProps(context) { const flow = context.query.flow; - const redirect = encodeURIComponent(`/api/redirect?return_to=${context.query.return_to ?? "/"}`); + const redirect = encodeURIComponent(`/api/accounts/authenticate?return_to=${context.query.return_to ?? "/"}`); if (process.env.NODE_ENV === "development") { return { props: { flow: require("../../../stubs/login.json") } };