SmartAuth
Comme toutes les applications sur smartphone vont se partager la partie authentification c'est un module à part entière.
L'objectif principal est de pouvoir fournir une clé d'api différente pour un même utilisateur selon l'application utilisée, voir même selon le couple application/périphérique utilisé.
Ainsi sa clé d'api ne sera pas la même sur son téléphone perso, téléphone pro, tablette etc.
En cas de vol d'un périphérique il sera alors possible de désactiver / supprimer la clé “perdue” sans aucun impact pour les autres qui garderont ainsi leur cycle de vie.
Visuellement il n'apporte qu'un seul tableau de bord dans les outils : la liste des jetons actifs que vous pouvez choisir de supprimer si besoin.
Pour les développeurs
// ************************ SmartAuth STUFF ************************ // dol_include_once('/smartauth/autoload.php'); // get informations about current module dol_include_once('/smartlivraisons/core/modules/modSmartLivraisons.class.php'); $tmpmodule = new \modSmartLivraisons($db); //very important to smartAuth stack $smartAuthAppID = $tmpmodule->numero; $smartAuthAppKey = getDolGlobalString('SMARTLIVRAISONS_JWT_KEY', $_SERVER['REMOTE_ADDR']);
Et ensuite vous pouvez créer toutes les routes dédiées pour votre api
use SmartAuth\Api\AuthController; use SmartAuth\Api\RouteController as Route; use SmartLivraisons\Api\HomeController; //unprotected Route::get('login', AuthController::class, 'index'); Route::post('login', AuthController::class, 'login'); //protected Route::post('logout', AuthController::class, 'logout', true); // ********** your SmartLivraisons project start here ********** // Route::get('home', HomeController::class, 'index', true);
Le contenu de SMARTLIVRAISONS_JWT_KEY
doit être créé lors de l'installation de votre module et sera utilisée utilisée pour saler le chiffrement spécifique pour votre application (donc un bidule de préférence aléatoire à l'installation mais “définitif” ensuite sous peine de voir toutes les clés inutilisables).