mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
Use cookies for client requests (#377)
* Use cookie for frontend request * Remove api helper to use SDK * Added error handling to status box * Remove additional places that check for session.user * Refactor sending password * prettier clean up * remove deadcode * Move all authentication requests to the client * refactor upload panel to only fetch assets after the upload panel disappear * Added keydown to remove focus on title change on album viewer
This commit is contained in:
parent
2ebb755f00
commit
83cbf51704
54 changed files with 4954 additions and 4540 deletions
|
|
@ -1,36 +1,23 @@
|
|||
import type { GetSession, Handle } from '@sveltejs/kit';
|
||||
import type { ExternalFetch, GetSession, Handle } from '@sveltejs/kit';
|
||||
import * as cookie from 'cookie';
|
||||
import { api } from '@api';
|
||||
|
||||
export const handle: Handle = async ({ event, resolve }) => {
|
||||
const cookies = cookie.parse(event.request.headers.get('cookie') || '');
|
||||
|
||||
if (!cookies.session) {
|
||||
if (!cookies['immich_is_authenticated']) {
|
||||
return await resolve(event);
|
||||
}
|
||||
const accessToken = cookies['immich_access_token'];
|
||||
|
||||
try {
|
||||
const { email, isAdmin, firstName, lastName, id, accessToken } = JSON.parse(cookies.session);
|
||||
|
||||
api.setAccessToken(accessToken);
|
||||
const { status } = await api.authenticationApi.validateAccessToken();
|
||||
const { data } = await api.userApi.getMyUserInfo();
|
||||
event.locals.user = data;
|
||||
|
||||
if (status === 201) {
|
||||
event.locals.user = {
|
||||
id,
|
||||
accessToken,
|
||||
firstName,
|
||||
lastName,
|
||||
isAdmin,
|
||||
email
|
||||
};
|
||||
}
|
||||
|
||||
const response = await resolve(event);
|
||||
|
||||
return response;
|
||||
return await resolve(event);
|
||||
} catch (error) {
|
||||
console.log('Error [handle]', error);
|
||||
event.locals.user = undefined;
|
||||
return await resolve(event);
|
||||
}
|
||||
};
|
||||
|
|
@ -39,13 +26,6 @@ export const getSession: GetSession = async ({ locals }) => {
|
|||
if (!locals.user) return {};
|
||||
|
||||
return {
|
||||
user: {
|
||||
id: locals.user.id,
|
||||
accessToken: locals.user.accessToken,
|
||||
firstName: locals.user.firstName,
|
||||
lastName: locals.user.lastName,
|
||||
isAdmin: locals.user.isAdmin,
|
||||
email: locals.user.email
|
||||
}
|
||||
user: locals.user
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue