fix(web): sharing of access token in server API (#1858)

This commit is contained in:
Michel Heusschen
2023-02-24 21:42:20 +01:00
committed by GitHub
parent 3ea107be5a
commit cc6253ba38
14 changed files with 43 additions and 58 deletions

View File

@@ -1,14 +1,7 @@
import { api } from '@api';
import type { LayoutServerLoad } from './$types';
export const load = (async ({ cookies }) => {
export const load = (async ({ locals: { api } }) => {
try {
const accessToken = cookies.get('immich_access_token');
if (!accessToken) {
return { user: undefined };
}
api.setAccessToken(accessToken);
const { data: user } = await api.userApi.getMyUserInfo();
return { user };

View File

@@ -1,9 +1,9 @@
export const prerender = false;
import { api } from '@api';
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ parent }) => {
export const load = (async ({ parent, locals: { api } }) => {
const { user } = await parent();
if (user) {
throw redirect(302, '/photos');
@@ -22,4 +22,4 @@ export const load: PageServerLoad = async ({ parent }) => {
description: 'Immich Web Interface'
}
};
};
}) satisfies PageServerLoad;

View File

@@ -1,8 +1,7 @@
import { redirect } from '@sveltejs/kit';
import { api } from '@api';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ parent }) => {
export const load = (async ({ parent, locals: { api } }) => {
const { user } = await parent();
if (!user) {
@@ -19,4 +18,4 @@ export const load: PageServerLoad = async ({ parent }) => {
title: 'Server Status'
}
};
};
}) satisfies PageServerLoad;

View File

@@ -1,8 +1,7 @@
import { redirect } from '@sveltejs/kit';
import { api } from '@api';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ parent }) => {
export const load = (async ({ parent, locals: { api } }) => {
const { user } = await parent();
if (!user) {
@@ -20,4 +19,4 @@ export const load: PageServerLoad = async ({ parent }) => {
title: 'User Management'
}
};
};
}) satisfies PageServerLoad;

View File

@@ -1,8 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
import { api } from '@api';
export const load: PageServerLoad = async ({ parent }) => {
export const load = (async ({ parent, locals: { api } }) => {
try {
const { user } = await parent();
@@ -22,4 +21,4 @@ export const load: PageServerLoad = async ({ parent }) => {
} catch (e) {
throw redirect(302, '/auth/login');
}
};
}) satisfies PageServerLoad;

View File

@@ -1,9 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
import { api } from '@api';
export const load: PageServerLoad = async ({ parent, params }) => {
export const load = (async ({ parent, params, locals: { api } }) => {
const { user } = await parent();
if (!user) {
@@ -23,4 +21,4 @@ export const load: PageServerLoad = async ({ parent, params }) => {
} catch (e) {
throw redirect(302, '/albums');
}
};
}) satisfies PageServerLoad;

View File

@@ -1,10 +1,9 @@
import { api } from '@api';
import { redirect } from '@sveltejs/kit';
export const prerender = false;
import type { PageLoad } from './$types';
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load: PageLoad = async () => {
export const load = (async ({ locals: { api } }) => {
try {
const { data: userInfo } = await api.userApi.getMyUserInfo();
@@ -21,4 +20,4 @@ export const load: PageLoad = async () => {
} catch (e) {
throw redirect(302, '/auth/login');
}
};
}) satisfies PageServerLoad;

View File

@@ -1,8 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
import { api } from '@api';
export const load: PageServerLoad = async () => {
export const load = (async ({ locals: { api } }) => {
const { data } = await api.userApi.getUserCount(true);
if (data.userCount === 0) {
// Admin not registered
@@ -14,4 +13,4 @@ export const load: PageServerLoad = async () => {
title: 'Login'
}
};
};
}) satisfies PageServerLoad;

View File

@@ -1,8 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
import { api } from '@api';
export const load: PageServerLoad = async () => {
export const load = (async ({ locals: { api } }) => {
const { data } = await api.userApi.getUserCount(true);
if (data.userCount != 0) {
// Admin has been registered, redirect to login
@@ -14,4 +13,4 @@ export const load: PageServerLoad = async () => {
title: 'Admin Registration'
}
};
};
}) satisfies PageServerLoad;

View File

@@ -1,10 +1,9 @@
export const prerender = false;
import { error } from '@sveltejs/kit';
import { api } from '@api';
import { error } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ params }) => {
export const load = (async ({ params, locals: { api } }) => {
try {
const { key, assetId } = params;
const { data: asset } = await api.assetApi.getAssetById(assetId, key);
@@ -16,4 +15,4 @@ export const load: PageServerLoad = async ({ params }) => {
} catch (e) {
console.log('Error', e);
}
};
}) satisfies PageServerLoad;

View File

@@ -1,10 +1,9 @@
import { redirect } from '@sveltejs/kit';
export const prerender = false;
import { api } from '@api';
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ parent }) => {
export const load = (async ({ parent, locals: { api } }) => {
try {
const { user } = await parent();
if (!user) {
@@ -23,4 +22,4 @@ export const load: PageServerLoad = async ({ parent }) => {
} catch (e) {
throw redirect(302, '/auth/login');
}
};
}) satisfies PageServerLoad;