PHP code example of poweronsystem / authorizationservice
1. Go to this page and download the library: Download poweronsystem/authorizationservice library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?phprequire_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
poweronsystem / authorizationservice example snippets
php
//Autoload composer
utenticador (Ver archivo src/Authorization.php)
$config = [
'login_session_time' => 7200,
'login_session_inactive_time' => 3600
];
//Establecemos los permisos para los sectores
$permissions = [];
//Creamos una instancia del autorizador
$auth = new PowerOn\Authorization\Authorization($config, $permissions);
php
namespaceApp;
usePowerOn\Database\Model;
usePowerOn\Authorization\AuthorizationAdapterInterface;
usePowerOn\Authorization\UserCredentials;
publicclassMyAdapterimplementsAuthorizationAdapterInterface{
private $db;
publicfunction__construct($database){
$this->db = $database;
}
publicfunctionlogin(UserCredentials $credentials){
/* Lógica de comprobación de usuario ...
* Lógica de Password Hasher personalizada ...
* $user = $db->getUser($credentials->username, $credentials->password);
* ...
*///Si es inválido retorna FALSE//Si es correcto devuelve las credenciales con los datos del usuario que se deseen cargar
$credentials->setUserData($user);
//Se establece el nivel de acceso del usuario
$credentials->setUserAccessLevel($user['access_level']);
//Otra lógica adicional antes de finalizar...return $credentials;
}
publicfunctionlogout(){
returnTRUE;
}
publicfunctionpauseSession(){
returnTRUE;
}
publicfunctionresumeSession(){
returnTRUE;
}
}
php
//Base de datos requerida por el adaptador de ejemplo
$database = new PDO();
//Instancia del adaptador
$adapter = new App\MyAdapter($database);
//Registro del adaptador
$auth->registerAdapter($adapter);
php
//Credenciales obtenidas de un formulario
$credentals = new PowerOn\Authorization\UserCredentials($_POST['username'], $_POST['password']);
try {
$auth->login($login_credentials);
//Login successecho $auth->getStatus(); //ok
} catch (PowerOn\Authorization\AuthorizationException $e) {
//Lógica de excepcionesecho $auth->getStatus(); //user_not_found | user_error
}
php
//Establecemos los permisos para los sectores de la siguiente manera
$permissions = [
//La url "/home" so de 10 o superior'/admin/*' => ['access_level' => 10],
//En este ejemplo solo permitimos el acceso a "/account/new-password" para que el usuario cambie su contraseña//solo en caso que haya transcurrido más de un dia desde la última modificación.'/account/new-password => ['allowed' => function(\PowerOn\Authorization\UserCredentials $userCredentials) {
return (time() - $userCredentials['last_password_request_time']) > 86400;
}]
];
//Creamos una instancia del autorizador
$auth = new PowerOn\Authorization\Authorization($config, $permissions);
php
//Clase Request genérica de ejemplo
$request = new \App\MyRequestClass();
//Url obtenida de una clase request
$url = $request->getUrl();
//Otros archivos adicionales a pasar en la función callable del array de permisos con la clave "allowed"
$otherFile = new \App\SomeClass();
$result = $auth->sector($url, $request, $otherFile);
var_dump($result); //bool(false) | bool(true)echo $auth->getStatus(); //sector_low_access_level | sector_not_allowed
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.