fix(auth): не выкидывать пользователя при сетевой ошибке refresh, access token 30 дней
- queryClient: refreshSession возвращает reason (network/unauthorized); при network-ошибке не делаем logout, а бросаем network_error_during_refresh. - useAuth: checkAuth и refreshUser не сбрасывают сессию при network-ошибке во время refresh, переводят в офлайн-режим. - auth.service: remember берётся из сессии, race tolerance 5 минут. - access token lifetime унифицирован до 30 дней по умолчанию, cookie maxAge теперь совпадает с JWT expiry (было 15 минут fallback).
This commit is contained in:
@@ -48,7 +48,7 @@ function isSecureCookie(): boolean {
|
||||
}
|
||||
|
||||
export function setAuthCookies(res: Response, tokens: TokenPair, remember: boolean): void {
|
||||
const accessMaxAge = parseExpiryToSeconds(process.env.JWT_ACCESS_EXPIRES || '15m') * 1000;
|
||||
const accessMaxAge = parseExpiryToSeconds(process.env.JWT_ACCESS_EXPIRES || '30d') * 1000;
|
||||
const refreshMaxAge = (remember ? REMEMBER_LIFETIME_DAYS : SESSION_LIFETIME_DAYS) * 24 * 60 * 60 * 1000;
|
||||
|
||||
res.cookie(ACCESS_TOKEN_COOKIE, tokens.accessToken, {
|
||||
@@ -319,7 +319,7 @@ export class AuthService {
|
||||
tokens: {
|
||||
accessToken,
|
||||
refreshToken: activeSession.refreshToken,
|
||||
expiresIn: parseExpiryToSeconds(process.env.JWT_ACCESS_EXPIRES || '15m'),
|
||||
expiresIn: parseExpiryToSeconds(process.env.JWT_ACCESS_EXPIRES || '30d'),
|
||||
familyId: activeSession.familyId,
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user