diff options
Diffstat (limited to 'src/routes/+layout.server.js')
| -rw-r--r-- | src/routes/+layout.server.js | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index fbd53cd0..9edc43e1 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -1,4 +1,4 @@ -import { error } from '@sveltejs/kit'; +import { error, redirect } from '@sveltejs/kit'; import cookie from 'cookie'; import { protectedRoutes } from '$lib/utils'; import { get, post, auth } from '$lib/utils'; @@ -11,18 +11,23 @@ export async function load({ request, setHeaders, url, params }) { let rates; if (token) { - user = await get('/me', { accept: 'application/json', authorization: `Bearer ${token}` }); + try { + user = await get('/me', { accept: 'application/json', authorization: `Bearer ${token}` }); + } catch (e) { + throw redirect(301, '/logout'); + } + if (protectedRoutes.find((p) => url.pathname.match(p))) { if (user.username !== params.username) throw error(404, 'user not found'); } - let account = user.accounts.find((a) => a.asset === btc && !a.pubkey); - if (account) { - let { id } = account; - if (user.account_id !== id) { - user = await post("/shiftAccount", { id }, auth(request)); - } - } + let account = user.accounts.find((a) => a.asset === btc && !a.pubkey); + if (account) { + let { id } = account; + if (user.account_id !== id) { + user = await post('/shiftAccount', { id }, auth(request)); + } + } } rates = await get('/rates'); |
