Authentication for PHP 8. Secure and easy.
- PHP 8.0+ (
php 8
) - PDO (PHP Data Objects) extension (
pdo
) - MySQL 5.6+ or MariaDB 5.5.23+ or PostgreSQL 9.5.10+
-
Include the library via Composer:
$ composer require osmo/auth
-
Include the Composer autoloader:
require __DIR__ . '/vendor/autoload.php';
-
Set up a database and create the required tables:
- Connect to database
- Create and configure a new instance
- Config login
- Methods to verify passwords
- Redirect on successful login
- Verify user login
- Clean user session
The three required data are the name of the database, the username and password. If your table is not named users, please specify it in array or use the setTable method.
$con = new Osmo\Database([
'username' => 'root',
'database' => 'system',
'password' => 'password'
//'table' => 'users_system'
]);
//Default value {users}
//$con->setTable('users_table');
To configure the instance, you must pass two parameters, $connection and an array[] with the two fields in the database to be validated.
$auth = new Osmo\Auth($con, ['email', 'password']);
In case the data is incorrect. The make() function will return a redirect to the same path where the $_POST method was executed.
if ($auth->isPost()) {
$auth->make($auth->inputEmailAddress(), $auth->input('password'), 'md5');
}
- md5
- sha1
- crypt
- password_verify (default verification)
$auth->make($auth->input('email'), $auth->input('password'), 'crypt');
To use the password_verify() method, leave the third parameter blank.
$auth->make($auth->input('email'), $auth->input('password'));
To redirect user, you need pass the callback function:
$auth->make($auth->inputEmailAddress(), $auth->input('password'), 'md5', function (){
Osmo\Response::redirect('/');
});
You can check if a user is logged in, with the following function:
if(Osmo\SessionManager::auth()) {
//
}
To clean up the sessions, you need to run the following function:
Osmo\SessionManager::destroy();