fix: reuse cached store list across logout/login instead of forcing refres
This commit is contained in:
14
server.js
14
server.js
@@ -302,6 +302,7 @@ app.post('/api/auth/login', async (req, res) => {
|
|||||||
|
|
||||||
const existingCredentials = credentialStore.get(profile.id);
|
const existingCredentials = credentialStore.get(profile.id);
|
||||||
const existingToken = existingCredentials?.token;
|
const existingToken = existingCredentials?.token;
|
||||||
|
const previousSession = existingToken ? sessionStore.get(existingToken) : null;
|
||||||
if (existingToken) {
|
if (existingToken) {
|
||||||
sessionStore.delete(existingToken);
|
sessionStore.delete(existingToken);
|
||||||
}
|
}
|
||||||
@@ -316,17 +317,22 @@ app.post('/api/auth/login', async (req, res) => {
|
|||||||
|
|
||||||
credentialStore.save(profile.id, { email, password, token: session.id });
|
credentialStore.save(profile.id, { email, password, token: session.id });
|
||||||
scheduleConfig(session.id, config, settings);
|
scheduleConfig(session.id, config, settings);
|
||||||
const refreshResult = triggerStoreRefresh(session, { force: true, reason: 'login' });
|
if (previousSession?.storesCache) {
|
||||||
|
sessionStore.update(session.id, { storesCache: previousSession.storesCache });
|
||||||
|
}
|
||||||
|
const currentSession = sessionStore.get(session.id);
|
||||||
|
const needsRefresh = !isStoreCacheFresh(currentSession);
|
||||||
|
const refreshResult = needsRefresh ? triggerStoreRefresh(currentSession, { force: true, reason: 'login' }) : {};
|
||||||
|
|
||||||
return res.json({
|
return res.json({
|
||||||
token: session.id,
|
token: session.id,
|
||||||
profile,
|
profile,
|
||||||
stores: session.storesCache?.data || [],
|
stores: sessionStore.get(session.id)?.storesCache?.data || [],
|
||||||
config,
|
config,
|
||||||
isAdmin: isAdminUser,
|
isAdmin: isAdminUser,
|
||||||
adminSettings: isAdminUser ? settings : undefined,
|
adminSettings: isAdminUser ? settings : undefined,
|
||||||
storeRefreshJob: summarizeJob(refreshResult.job),
|
storeRefreshJob: summarizeJob(refreshResult?.job),
|
||||||
storesFresh: isStoreCacheFresh(session)
|
storesFresh: isStoreCacheFresh(sessionStore.get(session.id))
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Login fehlgeschlagen:', error.message);
|
console.error('Login fehlgeschlagen:', error.message);
|
||||||
|
|||||||
Reference in New Issue
Block a user