Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Simple authentication service extension to authenticate user by config.ini credentials, possible to extend more.

License

Notifications You must be signed in to change notification settings

mvccore/ext-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MvcCore - Extension - Authentication

Latest Stable Version License PHP Version

Authentication module with automatic authentication module type detection by loaded classes.

Installation

composer require mvccore/ext-auth

Usage

Add this to Bootstrap.php or to very application beginning, before application routing.

\MvcCore\Ext\Auth::GetInstance()
	->SetPasswordHashSalt('s9E56/QH6!a69sJML9aS$6s+')
	->SetUserClass('\\MvcCore\\Ext\\Auths\\Users\\SystemConfig');

For system config users, you need to specify users in system.ini like this:

[users]
0.userName		= admin
0.fullName		= Administrator
0.passwordHash	= $2y$10$czlFNTYvUUg2IWE2OXNKTO8PB5xPGXz9i8IH7Fa7M0YsPlSLriJZu
; admin password is `demo`

To get sign in form into view in your application controller:

...
	public function IndexAction () {
		if ($this->user !== NULL)
			self::Redirect($this->Url('administration_index_page'));
		$this->view->SignInForm = \MvcCore\Ext\Auth::GetInstance()
			->GetSignInForm()
			->SetValues(array(// set signed in url to administration index page by default:
				'successUrl' => $this->Url('administration_index_page'),
			));
	}
...

To get sign out form into view in your application controller:

...
	public function PreDispatch () {
		parent::PreDispatch();
		if ($this->viewEnabled && $this->user) {
			$this->view->SignOutForm =\MvcCore\Ext\Auth::GetInstance()
				->GetSignOutForm()
				->SetValues(array(
					'successUrl' => $this->Url('login_page')
				));
		}
	}
...

For any forms CSRF errors - you can call in base controller Init() action:

...
	public function Init() {
		parent::Init();
		// when any CSRF token is outdated or not the same - sign out user by default
		$this->application->AddSecurityErrorHandler(function (\MvcCore\IRequest $req, \MvcCore\IResponse $res, ?\MvcCore\Ext\Form $form = NULL) {
			\MvcCore\Ext\Auth\User::LogOut();
			self::Redirect($this->Url(
				'Index:Index',
				array('absolute' => TRUE, 'sourceUrl'	=> rawurlencode($form->ErrorUrl))
			));
		});
	}
...

To translate your signin and signout form visible elements, use:

\MvcCore\Ext\Auth::GetInstance()->SetTranslator(function ($key, $lang = NULL) {
	// your custom translator model/service:
	return \App\Models\Translator::GetInstance()->Translate($key, $lang);
});

About

Simple authentication service extension to authenticate user by config.ini credentials, possible to extend more.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages