feat(session): Simplify session renewal logic for online status
- Remove session expiry threshold check - Always renew session when user status is online - Streamline session token generation and cookie setting
- commit
- 334edb852234054287e1f546d01b169b97d61d4c
- author
- Kit · · 2025-02-19 06:47 UTC
- parent
- 0b43029
- signature
- SSH Unverified
SHA256:H91DFuEG4jpk5edzLA4aUKkpv4zv9Q339ipRmkph6TkThe key is unknown
1 file · +8 -12
M src/routes/api/status/+server.ts +8 -12
| @@ -47,23 +47,19 @@ export const POST: RequestHandler = async ({ request, cookies, locals }) => { | |||
| 47 | 47 | .get(); | |
| 48 | 48 | log.debug('Database updated successfully', { userId: maskedUserId, status }); | |
| 49 | 49 | ||
| 50 | - | // Renew session if status is online and session is near expiry | |
| 50 | + | // Renew session if status is online | |
| 51 | 51 | if (status === 'online') { | |
| 52 | 52 | const token = cookies.get('session'); | |
| 53 | 53 | if (token) { | |
| 54 | 54 | const result = await validateSessionToken(token); | |
| 55 | 55 | if (result.session) { | |
| 56 | - | const remaining = result.session.expiresAt - now; | |
| 57 | - | const threshold = 15 * 60 * 1000; // 15 minutes in milliseconds | |
| 58 | - | if (remaining < threshold) { | |
| 59 | - | const newToken = generateSessionToken(); | |
| 60 | - | const newSession = await createSession(newToken, userId); | |
| 61 | - | setSessionTokenCookie({ cookies }, newToken, newSession.expiresAt); | |
| 62 | - | log.info('Session renewed', { | |
| 63 | - | userId: maskedUserId, | |
| 64 | - | expiresAt: new Date(newSession.expiresAt).toISOString() | |
| 65 | - | }); | |
| 66 | - | } | |
| 56 | + | const newToken = generateSessionToken(); | |
| 57 | + | const newSession = await createSession(newToken, userId); | |
| 58 | + | setSessionTokenCookie({ cookies }, newToken, newSession.expiresAt); | |
| 59 | + | log.info('Session renewed', { | |
| 60 | + | userId: maskedUserId, | |
| 61 | + | expiresAt: new Date(newSession.expiresAt).toISOString() | |
| 62 | + | }); | |
| 67 | 63 | } | |
| 68 | 64 | } | |
| 69 | 65 | } | |
| @@ -47,23 +47,19 @@ export const POST: RequestHandler = async ({ request, cookies, locals }) => { | |||||
| 47 | .get(); | 47 | .get(); | ||
| 48 | log.debug('Database updated successfully', { userId: maskedUserId, status }); | 48 | log.debug('Database updated successfully', { userId: maskedUserId, status }); | ||
| 49 | 49 | ||||
| 50 | - | // Renew session if status is online and session is near expiry | 50 | + | // Renew session if status is online |
| 51 | if (status === 'online') { | 51 | if (status === 'online') { | ||
| 52 | const token = cookies.get('session'); | 52 | const token = cookies.get('session'); | ||
| 53 | if (token) { | 53 | if (token) { | ||
| 54 | const result = await validateSessionToken(token); | 54 | const result = await validateSessionToken(token); | ||
| 55 | if (result.session) { | 55 | if (result.session) { | ||
| 56 | - | const remaining = result.session.expiresAt - now; | 56 | + | const newToken = generateSessionToken(); |
| 57 | - | const threshold = 15 * 60 * 1000; // 15 minutes in milliseconds | 57 | + | const newSession = await createSession(newToken, userId); |
| 58 | - | if (remaining < threshold) { | 58 | + | setSessionTokenCookie({ cookies }, newToken, newSession.expiresAt); |
| 59 | - | const newToken = generateSessionToken(); | 59 | + | log.info('Session renewed', { |
| 60 | - | const newSession = await createSession(newToken, userId); | 60 | + | userId: maskedUserId, |
| 61 | - | setSessionTokenCookie({ cookies }, newToken, newSession.expiresAt); | 61 | + | expiresAt: new Date(newSession.expiresAt).toISOString() |
| 62 | - | log.info('Session renewed', { | 62 | + | }); |
| 63 | - | userId: maskedUserId, | |||
| 64 | - | expiresAt: new Date(newSession.expiresAt).toISOString() | |||
| 65 | - | }); | |||
| 66 | - | } | |||
| 67 | } | 63 | } | ||
| 68 | } | 64 | } | ||
| 69 | } | 65 | } | ||