forked from ZwiiCMS-Team/ZwiiCMS
Cookie authentification : samesite = strict | remember me ok
This commit is contained in:
parent
c933abefc2
commit
5a9e7405e0
@ -3,8 +3,10 @@
|
|||||||
## version 10.2.07
|
## version 10.2.07
|
||||||
- Correction :
|
- Correction :
|
||||||
- Bloquage de l'incrémentation de l'id de page lorsque deux pages ont le même nom.
|
- Bloquage de l'incrémentation de l'id de page lorsque deux pages ont le même nom.
|
||||||
- Modification :
|
- Login : l'option "Se souvenir de moi" est fonctionnelle.
|
||||||
|
- Modifications :
|
||||||
- Configuration: sauvegarde du site dans une archive : animation d'attente avec message de confirmation ou d'erreur.
|
- Configuration: sauvegarde du site dans une archive : animation d'attente avec message de confirmation ou d'erreur.
|
||||||
|
- Cookies d'authentification : option samesite sur Strict
|
||||||
|
|
||||||
## version 10.2.06
|
## version 10.2.06
|
||||||
- Corrections :
|
- Corrections :
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<?php echo template::mail('installMail', [
|
<?php echo template::mail('installMail', [
|
||||||
'autocomplete' => 'off',
|
'autocomplete' => 'off',
|
||||||
'label' => 'Adresse mail'
|
'label' => 'Adresse mail'
|
||||||
]); ?>
|
]); ?>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col6">
|
<div class="col6">
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<?php echo template::checkbox('installDefaultData',true , 'Charger un exemple de site', [
|
<?php echo template::checkbox('installDefaultData',true , 'Charger un exemple de site', [
|
||||||
'checked' => true
|
'checked' => true
|
||||||
]);
|
]);
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -24,8 +24,11 @@ class user extends common {
|
|||||||
'logout' => self::GROUP_MEMBER,
|
'logout' => self::GROUP_MEMBER,
|
||||||
'reset' => self::GROUP_VISITOR
|
'reset' => self::GROUP_VISITOR
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $users = [];
|
public static $users = [];
|
||||||
|
|
||||||
|
public static $userId = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ajout
|
* Ajout
|
||||||
*/
|
*/
|
||||||
@ -373,7 +376,7 @@ class user extends common {
|
|||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
// Cas 4 : le délai de blocage est dépassé et le compte est au max - Réinitialiser
|
// Cas 4 : le délai de blocage est dépassé et le compte est au max - Réinitialiser
|
||||||
if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time()
|
if ($this->getData(['user',$userId,'connectTimeout']) + $this->getData(['config', 'connect', 'timeout']) < time()
|
||||||
AND $this->getData(['user',$userId,'connectFail']) === $this->getData(['config', 'connect', 'attempt']) ) {
|
AND $this->getData(['user',$userId,'connectFail']) === $this->getData(['config', 'connect', 'attempt']) ) {
|
||||||
$this->setData(['user',$userId,'connectFail',0 ]);
|
$this->setData(['user',$userId,'connectFail',0 ]);
|
||||||
$this->setData(['user',$userId,'connectTimeout',0 ]);
|
$this->setData(['user',$userId,'connectTimeout',0 ]);
|
||||||
@ -388,8 +391,8 @@ class user extends common {
|
|||||||
) {
|
) {
|
||||||
// Expiration
|
// Expiration
|
||||||
$expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0;
|
$expire = $this->getInput('userLoginLongTime') ? strtotime("+1 year") : 0;
|
||||||
setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
|
setcookie('ZWII_USER_ID', $userId, $expire, helper::baseUrl(false, false) . '; samesite=strict' , '', helper::isHttps(), true);
|
||||||
setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false), '', helper::isHttps(), true);
|
setcookie('ZWII_USER_PASSWORD', $this->getData(['user', $userId, 'password']), $expire, helper::baseUrl(false, false) . '; samesite=strict', '', helper::isHttps(), true);
|
||||||
// Accès multiples avec le même compte
|
// Accès multiples avec le même compte
|
||||||
$this->setData(['user',$userId,'accessCsrf',$_SESSION['csrf']]);
|
$this->setData(['user',$userId,'accessCsrf',$_SESSION['csrf']]);
|
||||||
// Valeurs en sortie lorsque le site est en maintenance et que l'utilisateur n'est pas administrateur
|
// Valeurs en sortie lorsque le site est en maintenance et que l'utilisateur n'est pas administrateur
|
||||||
@ -442,6 +445,9 @@ class user extends common {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!empty($_COOKIE['ZWII_USER_ID'])) {
|
||||||
|
self::$userId = $_COOKIE['ZWII_USER_ID'];
|
||||||
|
}
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'display' => self::DISPLAY_LAYOUT_LIGHT,
|
'display' => self::DISPLAY_LAYOUT_LIGHT,
|
||||||
@ -454,7 +460,7 @@ class user extends common {
|
|||||||
* Déconnexion
|
* Déconnexion
|
||||||
*/
|
*/
|
||||||
public function logout() {
|
public function logout() {
|
||||||
helper::deleteCookie('ZWII_USER_ID');
|
// Ne pas effacer l'identifiant mais seulement le mot de passe
|
||||||
helper::deleteCookie('ZWII_USER_PASSWORD');
|
helper::deleteCookie('ZWII_USER_PASSWORD');
|
||||||
session_destroy();
|
session_destroy();
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col6">
|
<div class="col6">
|
||||||
<?php echo template::text('userLoginId', [
|
<?php echo template::text('userLoginId', [
|
||||||
'label' => 'Identifiant'
|
'label' => 'Identifiant',
|
||||||
|
'value' => $module::$userId
|
||||||
]); ?>
|
]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col6">
|
<div class="col6">
|
||||||
@ -13,9 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col6">
|
<div class="col6">
|
||||||
<?php echo template::checkbox('userLoginLongTime', true, 'Se souvenir de moi', [
|
<?php echo template::checkbox('userLoginLongTime', true, 'Se souvenir de moi'); ?>
|
||||||
'help' => 'La session est close à la fermeture du navigateur.'
|
|
||||||
]); ?>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col6 textAlignRight">
|
<div class="col6 textAlignRight">
|
||||||
|
Loading…
Reference in New Issue
Block a user