NxTIC/manager/repo/token.php

91 lines
2.1 KiB
PHP

<?php
namespace manager\repo;
use \manager\Database;
class token{
/* Gestion de la table Token (pour secu) et des derivations
*
* 1. Gestion des access
* - getById(id_token)
* - getAll()
*
* 2. Gestion de la verification
* - check(token, id_personne)
*
* 3. Gestion de la
* - merge(idA, idB)
*
* 4. Gestion de creation
* - create(pseudo, nom, prenom, facebook, telephone)
*
*
*/
/* RETOURNE LA LISTE DE TOUS LES TOKENS
*
* @return tokens<Array> Liste de tous les tokens
*
*/
public static function getAll(){
/* [1] On prepare et execute la requete
=========================================================*/
$request = Database::getPDO()->query("SELECT id_token as id, name, token, expires
FROM api_token
ORDER BY expires DESC");
/* [2] On recupere les donnees et ajout le status d'expire ou non
=========================================================*/
$data = Database::delNumeric( $request->fetchAll() );
// Si le token est expire
foreach($data as $i=>$token)
$data[$i]['expired'] = time() > strtotime($token['expires']);
/* [3] On retourne le resultat
=========================================================*/
return $data;
}
/* VERIFIE SI UN TOKEN EST VALIDE
*
* @token<String> Token en question
*
* @return valid<bool> Retourne si VRAI ou FAUX le token est valid
*
*/
public static function check($token){
/* [0] Verification des INPUT
=========================================================*/
// si le format est incorrect, on retourne FAUX
if( !Database::check('sha1', $token) ) return false;
/* [1] Verification dans la base de donnees
=========================================================*/
$check = Database::getPDO()->prepare("SELECT id_token
FROM api_token
WHERE CURDATE() < expires
AND token = :token");
$check->execute(array( ':token' => $token ));
/* [2] On retourne le resultat
=========================================================*/
return $check->fetch() !== false;
}
}
?>