Subversion Repositories eFlore/Applications.cel

Rev

Rev 3996 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3996 Rev 3998
Line 158... Line 158...
158
 
158
 
159
	protected function getAuthMotDePasse() {
159
	protected function getAuthMotDePasse() {
160
		$mdp = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : null;
160
		$mdp = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : null;
161
		return $mdp;
161
		return $mdp;
-
 
162
	}
-
 
163
	
-
 
164
	protected function decodeToken($token){
-
 
165
		$parts = explode('.', $token);
-
 
166
		$payload = $parts[1];
-
 
167
		$payload = $this->urlsafeB64Decode($payload);
-
 
168
		$payload = json_decode($payload, true);
-
 
169
		
-
 
170
		return $payload;
-
 
171
	}
-
 
172
	
-
 
173
	protected function urlsafeB64Decode($input) {
-
 
174
		$remainder = strlen($input) % 4;
-
 
175
		if ($remainder) {
-
 
176
			$padlen = 4 - $remainder;
-
 
177
			$input .= str_repeat('=', $padlen);
-
 
178
		}
-
 
179
		return base64_decode(strtr($input, '-_', '+/'));
-
 
180
	}
-
 
181
 
-
 
182
	protected function getUserFromCookie(){
-
 
183
		$cookie = $_COOKIE[$this->config['authentification']['cookieName']];
-
 
184
		
-
 
185
		if ($cookie){
-
 
186
			// Récupération de l'id et email de l'utilisateur connecté
-
 
187
			$tokenInfos = $this->decodeToken($cookie);
-
 
188
			
-
 
189
			$token = $this->refreshToken($cookie)['token'];
-
 
190
 
-
 
191
			$user = [
-
 
192
				'id' => $tokenInfos['id'],
-
 
193
				'email' => $tokenInfos['sub'],
-
 
194
				'token' => $token
-
 
195
			];
-
 
196
			
-
 
197
			return $user;
-
 
198
		}
-
 
199
		
-
 
200
	}
-
 
201
	
-
 
202
	protected function refreshToken($token) {
-
 
203
		$service = "auth/identite?token=" . $token;
-
 
204
		$verificationServiceURL = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service);
-
 
205
 
-
 
206
		$ch = curl_init();
-
 
207
 
-
 
208
		$cookie = $this->config['authentification']['cookieName'].'='.$token;
-
 
209
		
-
 
210
		$headr = array();
-
 
211
		$headr[] = 'Cookie: ' . $cookie;
-
 
212
		$headr[] = 'Authorization: '.$token;
-
 
213
		
-
 
214
		curl_setopt($ch, CURLOPT_URL, $verificationServiceURL);
-
 
215
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
-
 
216
		curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);
-
 
217
//		curl_setopt($ch, CURLOPT_HTTPHEADER, [
-
 
218
//			'Cookie: ' . $cookie,
-
 
219
//		]);
-
 
220
		curl_setopt($ch, CURLOPT_COOKIE, $cookie);
-
 
221
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-
 
222
 
-
 
223
		// équivalent de "-k"
-
 
224
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
-
 
225
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-
 
226
		$response = curl_exec($ch);
-
 
227
		
-
 
228
		curl_close($ch);
-
 
229
 
-
 
230
		return json_decode($response, true);
Line 162... Line 231...
162
	}
231
	}
163
 
232
 
164
	protected function authentifierAdmin() {
233
	protected function authentifierAdmin() {
165
		$message_accueil = "Veuillez vous identifier avec votre compte Tela Botanica.";
234
		$message_accueil = "Veuillez vous identifier avec votre compte Tela Botanica.";