161,6 → 161,48 |
return $mdp; |
} |
|
protected function decodeToken($token){ |
$parts = explode('.', $token); |
$payload = $parts[1]; |
$payload = $this->urlsafeB64Decode($payload); |
$payload = json_decode($payload, true); |
|
return $payload; |
} |
|
protected function urlsafeB64Decode($input) { |
$remainder = strlen($input) % 4; |
if ($remainder) { |
$padlen = 4 - $remainder; |
$input .= str_repeat('=', $padlen); |
} |
return base64_decode(strtr($input, '-_', '+/')); |
} |
|
protected function getUserFromCookie(){ |
$cookie = $_COOKIE['tb_auth']; |
|
if ($cookie){ |
// Récupération de l'id et email de l'utilisateur connecté |
$tokenInfos = $this->decodeToken($cookie); |
|
$service = "auth/identite?token="; |
$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service).$cookie; |
|
$json = $this->getDao()->consulter($url); |
$token = json_decode($json, true)['token']; |
|
$user = [ |
'id' => $tokenInfos['id'], |
'email' => $tokenInfos['sub'], |
'token' => $token |
]; |
|
return $user; |
} |
|
} |
|
protected function authentifierAdmin() { |
$message_accueil = "Veuillez vous identifier avec votre compte Tela Botanica."; |
$message_echec = "Accès limité aux administrateurs du CEL.\n". |