1. Go to this page and download the library: Download wappcode/gql-pdss-auth library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// config/local.config.php
use GPDAuth\Library\AuthConfig;
use GPDAuth\Library\IAuthService;
return [
// configuración de otros módulos
// .....
AuthConfig::JWT_SECURE_KEY => "secret_key",
AuthConfig::AUTH_SESSION_KEY => "gpd_auth_session_key", // key o indice asociativo del array $_SESSION para authentificación
AuthConfig::JWT_EXPIRATION_TIME_KEY => 1200, // Tiempo en segundos
AuthConfig::JWT_ALGORITHM_KEY => 'HS256',
AuthConfig::AUTH_METHOD_KEY => IAuthService::AUTHENTICATION_METHOD_SESSION_OR_JWT,
AuthConfig::AUTH_ISS_KEY => $_SERVER["SERVER_NAME"] ?? "localhost",
AuthConfig::JWT_ISS_CONFIG => [
// se agregan los datos de los iss usando el nombre como clave
"https://issurl" => [ // url o id del iss
AuthConfig::JWT_SECURE_KEY => "secure_key_to_iss",// opcional si no esta definido utiliza la clave de la configuración local
AuthConfig::JWT_ALGORITHM_KEY => "HS256", // opcional si no esta definido utiliza el algoritmo de la configuración local
AuthConfig::AUTH_ISS_ALLOWED_ROLES => [ // array con los roles permitidos para el iss se permite el mapeo de un rol del iss a uno del sistema
"iss_admin_role" => "admin",
"custom_role" => "custom_role"
]
]
]
// .....
];
// public/index.php
//...
use GPDAuth\GPDAuthModule;
//...
$app->addModules([
GPDAuthModule::class, // se agrega módulo de autentificación
// Otros módulos
//...
AppModule::class,
]);
//...
//...
$auth = $this->context->getServiceManager()->get(AuthService::class);
// Revisa si el usuario esta firmado
$auth->isSigned();
$auth->hasPermission("resource_post","VIEW"); // retorna true si el usuario tiene permiso para ver post sin importar el scope
$auth->hasPermission("resource_post","VIEW","OWNER"); // retorna true si el usuario tiene permiso para ver post pero con scope OWNER
$auth->hasPermission("resource_post","VIEW","ALL"); // retorna true si el usuario tiene permiso para ver post pero con scope ALL
//...
$auth = new AuthService(
$entityManager,
$_SERVER["SERVER_NAME"] ?? "localhost",
"JWT", // o SESSION
);
$auth->setJwtAlgoritm("HS256");
$auth->setjwtExpirationTimeInSeconds(1200);// En segundos
$auth->setJwtSecureKey("secret_key");
$auth->initSession();
//...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.