aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/+layout.server.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/+layout.server.js')
-rw-r--r--src/routes/+layout.server.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js
new file mode 100644
index 00000000..e05380a7
--- /dev/null
+++ b/src/routes/+layout.server.js
@@ -0,0 +1,17 @@
+import cookie from 'cookie';
+import { protectedRoutes } from '$lib/utils';
+import { get } from '$lib/utils';
+
+export async function load({ request, setHeaders, url, params }) {
+ let { token } = cookie.parse(request.headers.get('cookie') || '');
+ let user;
+
+ if (token) {
+ user = await get('/me', { accept: 'application/json', authorization: `Bearer ${token}` });
+ if (protectedRoutes.find((p) => url.pathname.match(p))) {
+ if (user.username !== params.username) throw new Error('user not found');
+ }
+ }
+
+ return { user, token };
+}