1
0
mirror of https://github.com/delight-im/PHP-Auth.git synced 2025-08-02 22:27:30 +02:00

Create session fields to track pending 2FA after login

This commit is contained in:
Marco
2024-03-13 08:13:44 +01:00
parent db7480be38
commit 3d19df85fc
2 changed files with 12 additions and 0 deletions

View File

@@ -408,6 +408,9 @@ final class Auth extends UserManager {
unset($_SESSION[self::SESSION_FIELD_REMEMBERED]);
unset($_SESSION[self::SESSION_FIELD_LAST_RESYNC]);
unset($_SESSION[self::SESSION_FIELD_FORCE_LOGOUT]);
unset($_SESSION[self::SESSION_FIELD_AWAITING_2FA_UNTIL]);
unset($_SESSION[self::SESSION_FIELD_AWAITING_2FA_USER_ID]);
unset($_SESSION[self::SESSION_FIELD_AWAITING_2FA_REMEMBER_DURATION]);
}
}

View File

@@ -40,6 +40,12 @@ abstract class UserManager {
const SESSION_FIELD_LAST_RESYNC = 'auth_last_resync';
/** @var string session field for the counter that keeps track of forced logouts that need to be performed in the current session */
const SESSION_FIELD_FORCE_LOGOUT = 'auth_force_logout';
/** @var string session field for the UNIX timestamp in seconds until which the first factor of authentication is considered to be completed and valid */
const SESSION_FIELD_AWAITING_2FA_UNTIL = 'auth_awaiting_2fa_until';
/** @var string session field for the ID of the user for whom the first factor of authentication has already been completed */
const SESSION_FIELD_AWAITING_2FA_USER_ID = 'auth_awaiting_2fa_user_id';
/** @var string session field for the desired "remember me" duration that the user originally requested when attempting to sign in */
const SESSION_FIELD_AWAITING_2FA_REMEMBER_DURATION = 'auth_awaiting_2fa_remember_duration';
/** @var PdoDatabase the database connection to operate on */
protected $db;
@@ -241,6 +247,9 @@ abstract class UserManager {
$_SESSION[self::SESSION_FIELD_FORCE_LOGOUT] = (int) $forceLogout;
$_SESSION[self::SESSION_FIELD_REMEMBERED] = $remembered;
$_SESSION[self::SESSION_FIELD_LAST_RESYNC] = \time();
$_SESSION[self::SESSION_FIELD_AWAITING_2FA_UNTIL] = null;
$_SESSION[self::SESSION_FIELD_AWAITING_2FA_USER_ID] = null;
$_SESSION[self::SESSION_FIELD_AWAITING_2FA_REMEMBER_DURATION] = null;
}
/**