Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 588 → Rev 589

/branches/v1.5-belier/jrest/services/auth/AuthPartnerPlantnet.php
New file
0,0 → 1,65
<?php
 
require "AuthPartner.php";
 
/**
* Permet de se connecter à l'annuaire de Tela Botanica à l'aide d'un compte Pl@ntNet / identify
*/
class AuthPartnerPlantnet extends AuthPartner {
 
public function verifierAcces($login, $password) {
$login = urlencode($login); // pour les espaces dans le nom d'utilisateur
$password = urlencode($password);
$url = "http://identify.plantnet-project.org/api/security/token/create?_username=$login&_password=$password";
 
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array()); // nécessaire dans les versions modernes de libcurl sinon on se prend un 400 !
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($curl);
curl_close($curl);
 
// var_dump($res); exit;
$res = json_decode($res, true);
//var_dump($res);
if (!empty($res['JWT'])) {
$this->jetonPartenaire = $res['JWT'];
$jetonDecode = $this->auth->decoderJetonManuellement($this->jetonPartenaire);
// stockage pour traitement dans les autres méthodes
$this->data = $jetonDecode['details'];
//var_dump($jeton);
if ( !empty($this->data['email'])) {
//var_dump($this->data['email']);
return true;
}
}
return false;
}
 
protected function getNomPartenaire() {
return "plantnet";
}
 
public function getCourriel() {
return $this->data['email'];
}
 
protected function getId() {
// la clef primaire est le "username" dans Pl@ntNet, apparemment
return $this->data['username'];
}
 
protected function getValeursProfilPartenaire() {
return array(
'nom' => $this->data['lastname'],
'prenom' => $this->data['firstname'],
'email' => $this->data['email'],
'pseudo' => $this->data['username']
);
}
 
/*public function getTimestampMajPartenaire() {
return 420000000000;
}*/
}