diff options
| author | Adrien Hopkins <[email protected]> | 2022-08-02 13:13:27 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2022-08-02 13:13:27 -0500 |
| commit | 4e91ea2bea37c2772f06e4617f6b72ebc453ac2e (patch) | |
| tree | 8616e416fa69801a9ddcd3f5f7e588cb653a099b /src/hooks/index.js | |
| parent | 66e60083514a37f7c38d9418e0c5cab3535070cf (diff) | |
| parent | 0676ad3f9afa2036dccce7165478ea0ba09dae1d (diff) | |
| download | coinos-ui-4e91ea2bea37c2772f06e4617f6b72ebc453ac2e.tar.gz coinos-ui-4e91ea2bea37c2772f06e4617f6b72ebc453ac2e.zip | |
Merge branch 'master' into i18n
Diffstat (limited to 'src/hooks/index.js')
| -rw-r--r-- | src/hooks/index.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/hooks/index.js b/src/hooks/index.js new file mode 100644 index 00000000..2284d88d --- /dev/null +++ b/src/hooks/index.js @@ -0,0 +1,25 @@ +import cookie from 'cookie'; +import { get } from '$lib/utils'; +import { protectedRoutes } from '$lib/utils'; + +export async function handle({ event, resolve }) { + let { + params, + request: { headers } + } = event; + + const cookies = cookie.parse(headers.get('cookie') || ''); + let { token } = cookies; + event.locals = { token }; + + if (protectedRoutes.find((p) => event.url.pathname.match(p))) { + let user = await get('/me', { accept: 'application/json', authorization: `Bearer ${token}` }); + if (user.username !== params.username) throw new Error('user not found'); + } + + return resolve(event); +} + +export const getSession = ({ locals: { token } }) => { + return { token }; +}; |
