2022-07-26 12:28:07 -05:00
|
|
|
import type { ExternalFetch, GetSession, Handle } from '@sveltejs/kit';
|
2022-05-21 02:23:55 -05:00
|
|
|
import * as cookie from 'cookie';
|
2022-07-10 21:41:45 -05:00
|
|
|
import { api } from '@api';
|
2022-05-21 02:23:55 -05:00
|
|
|
|
2022-06-11 16:12:06 -05:00
|
|
|
export const handle: Handle = async ({ event, resolve }) => {
|
|
|
|
|
const cookies = cookie.parse(event.request.headers.get('cookie') || '');
|
|
|
|
|
|
2022-07-26 12:28:07 -05:00
|
|
|
if (!cookies['immich_is_authenticated']) {
|
2022-06-11 16:12:06 -05:00
|
|
|
return await resolve(event);
|
|
|
|
|
}
|
2022-07-26 12:28:07 -05:00
|
|
|
const accessToken = cookies['immich_access_token'];
|
2022-06-11 16:12:06 -05:00
|
|
|
|
|
|
|
|
try {
|
2022-07-10 21:41:45 -05:00
|
|
|
api.setAccessToken(accessToken);
|
2022-07-26 12:28:07 -05:00
|
|
|
const { data } = await api.userApi.getMyUserInfo();
|
|
|
|
|
event.locals.user = data;
|
2022-06-11 16:12:06 -05:00
|
|
|
|
2022-07-26 12:28:07 -05:00
|
|
|
return await resolve(event);
|
2022-06-11 16:12:06 -05:00
|
|
|
} catch (error) {
|
2022-07-26 12:28:07 -05:00
|
|
|
event.locals.user = undefined;
|
2022-06-11 16:12:06 -05:00
|
|
|
return await resolve(event);
|
|
|
|
|
}
|
2022-05-21 02:23:55 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getSession: GetSession = async ({ locals }) => {
|
2022-06-11 16:12:06 -05:00
|
|
|
if (!locals.user) return {};
|
|
|
|
|
|
|
|
|
|
return {
|
2022-07-26 12:28:07 -05:00
|
|
|
user: locals.user
|
2022-06-11 16:12:06 -05:00
|
|
|
};
|
|
|
|
|
};
|