PHP code example of marcel-maqsood / session-auth-middleware
1. Go to this page and download the library: Download marcel-maqsood/session-auth-middleware 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/ */
marcel-maqsood / session-auth-middleware example snippets
use MazeDEV\DatabaseConnector\PersistentPDO;
use MazeDEV\DatabaseConnector\PersistentPDOFactory;
use MazeDEV\SessionAuth\Repository\PDORepository;
use MazeDEV\SessionAuth\Repository\PDORepositoryFactory;
use Mezzio\Authentication\AuthenticationInterface;
use Mezzio\Authentication\Session\PhpSession;
use Mezzio\Authentication\UserRepositoryInterface;
use Mezzio\Session\SessionMiddleware;
use Mezzio\Session\SessionMiddlewareFactory;
return [
'dependencies' => [
'aliases' => [
AuthenticationInterface::class => PhpSession::class,
UserRepositoryInterface::class => PDORepository::class,
],
'factories' => [
PersistentPDO::class => PersistentPDOFactory::class,
PDORepository::class => PDORepositoryFactory::class,
SessionMiddleware::class => SessionMiddlewareFactory::class,
],
],
];
$app->pipe(ErrorHandler::class);
$app->pipe(ServerUrlMiddleware::class);
$app->pipe(SessionMiddleware::class);
$app->route('/admin/dashboard[/]', [
MazeDEV\SessionAuth\SessionAuthMiddleware::class,
App\Handler\AdminDashboardHandler::class,
], ['GET'], 'adminDashboard');
$app->pipe(UrlHelperMiddleware::class);
$app->pipe(SessionAuthMiddleware::class);
'loginHandling' => [
'adminLogin' => [
'name' => 'Admin',
'destination' => 'adminDashboard',
'resetDestination' => 'adminPasswordReset',
],
'userLogin' => [
'name' => 'Benutzer',
'destination' => 'userDashboard',
'resetDestination' => 'userPasswordReset',
],
],
$app->route('/admin/login[/]', [
MazeDEV\SessionAuth\SessionAuthMiddleware::class,
MazeDEV\SessionAuth\Handler\GlobalLoginHandler::class,
], ['GET', 'POST'], 'adminLogin');
$app->route('/admin/dashboard[/]', [
MazeDEV\SessionAuth\SessionAuthMiddleware::class,
App\Handler\AdminDashboardHandler::class,
], ['GET'], 'adminDashboard');
$app->route('/logout[/]', [
MazeDEV\SessionAuth\Handler\LogoutHandler::class,
], ['GET', 'POST'], 'logout');
'no-auth-routes' => [
'adminPasswordReset' => 'adminLogin',
'userPasswordReset' => 'userLogin',
],
'authentication' => [
'redirect' => '/',
'username-forwarding' => true,
'permission-forwarding' => false,
'passwordResetOffset' => 2592000,
'allowWildcard' => true,
'username' => 'username',
'password' => 'password',
'repository' => [
'table' => 'user',
'fields' => [
'identities' => [
'username',
'email',
],
'password' => 'passwordhash',
],
'disable-check' => true,
'table_override' => [
'user' => [
'tableKey' => 'user',
'display' => 'Benutzer',
'loginAt' => 'userLogin',
],
'admin' => [
'tableKey' => 'admin',
'display' => 'Admin',
'loginAt' => 'adminLogin',
],
],
],
'security' => [
'algo' => 'sha256',
'salt' => 'change-this-salt',
'fields' => [
'session' => 'sessionhash',
'stamp' => 'sessionstart',
],
],
],
'session' => [
'config' => [
'cookie_lifetime' => 60 * 60,
'gc_lifetime' => 60 * 60 * 24,
],
],
'tables' => [
'user' => [
'tableName' => 'users',
'identifier' => 'loginId',
'loginName' => 'username',
'loginMail' => 'email',
'disabled' => 'disabled',
'hidden' => 'hidden',
'resetHash' => 'forgothash',
'resetValid' => 'forgotvalid',
],
'user_settings' => [
'tableName' => 'user_settings',
'identifier' => 'settingId',
'user_identifier' => 'loginId',
'icon_path' => 'icon_path',
'language' => 'language',
],
'user_group_relation' => [
'tableName' => 'user_has_groups',
'identifier' => 'lhgId',
'group_identifier' => 'groupId',
'login_identifier' => 'loginId',
],
'user_groups' => [
'tableName' => 'user_groups',
'identifier' => 'groupId',
'name' => 'name',
'hidden' => 'hidden',
],
'user_permissions' => [
'tableName' => 'user_permissions',
'identifier' => 'permissionId',
'name' => 'name',
'value' => 'value',
'noPermFallback' => 'noPermFallback',
'allowBypass' => 'allowBypass',
'hidden' => 'hidden',
],
'user_group_permission_relation' => [
'tableName' => 'user_group_has_permissions',
'identifier' => 'ghpId',
'permission_identifier' => 'permissionId',
'group_identifier' => 'groupId',
],
],
'messages' => [
'error' => [
'session-detail-error' => 'Ihre Sitzung scheint fehlerhaft zu sein, bitte melden Sie sich erneut an.',
'session-set-error' => 'Ihre Sitzung konnte nicht eingetragen werden, bitte probieren Sie es erneut.',
'session-expired-error' => 'Ihre Sitzung ist ausgelaufen, bitte melden Sie sich erneut an.',
'another-device-logon-error' => 'Ein anderes Gerät hat sich angemeldet.',
'logon-
$user = MazeDEV\SessionAuth\SessionAuthMiddleware::$permissionManager::getUser();
$groups = MazeDEV\SessionAuth\SessionAuthMiddleware::$permissionManager->getGroups();
$hasPermission = MazeDEV\SessionAuth\SessionAuthMiddleware::$permissionManager->userHasPermission('adminDashboard');