various improvements (#2671)

* improve oauth config logic

* expire pending login

* move sort to backend
This commit is contained in:
Bernd Storath
2026-06-18 11:14:20 +02:00
committed by GitHub
parent 032347648d
commit e7ea65a898
17 changed files with 144 additions and 147 deletions
@@ -40,6 +40,8 @@ export default defineEventHandler(async (event) => {
type: 'oauth',
userId: result.userId,
remember: false,
// 5min
expires_at: Date.now() + 5 * 60 * 1000,
},
oauth_nonce: undefined,
oauth_state: undefined,
+3 -1
View File
@@ -1,10 +1,12 @@
export default defineEventHandler(async (event) => {
const session = await useWGSession(event, false);
const session = await useWGSession(event);
await session.update({
pendingLogin: undefined,
oauth_nonce: undefined,
oauth_state: undefined,
oauth_verifier: undefined,
});
return { success: true as const };
});
+2
View File
@@ -32,6 +32,8 @@ export default defineEventHandler(async (event) => {
type: 'password',
userId: result.userId,
remember,
// 5min
expires_at: Date.now() + 5 * 60 * 1000,
},
});
return { status: 'TOTP_REQUIRED' as const };
+10
View File
@@ -7,6 +7,16 @@ export default defineEventHandler(async (event) => {
statusMessage: 'No pending authentication',
});
}
if (new Date() > new Date(session.data.pendingLogin.expires_at)) {
await session.update({
pendingLogin: undefined,
});
throw createError({
statusCode: 401,
statusMessage: 'No pending authentication',
});
}
return {
type: session.data.pendingLogin.type,
+7
View File
@@ -14,6 +14,13 @@ export default defineEventHandler(async (event) => {
statusMessage: 'No pending authentication',
});
}
if (new Date() > new Date(pendingLogin.expires_at)) {
await session.update({
pendingLogin: undefined,
});
return { status: 'PENDING_LOGIN_EXPIRED' as const };
}
const totpStatus = await Database.users.validateTotpCode(
pendingLogin.userId,