osmo / auth
Authentication for PHP 8. Secure and easy.
Requires
- php: >=8.0
This package is not auto-updated.
Last update: 2024-05-01 23:14:11 UTC
README
Authentication for PHP 8. Secure and easy.
Requirements
- PHP 8.0+ (
php 8
) - PDO (PHP Data Objects) extension (
pdo
) - MySQL 5.6+ or MariaDB 5.5.23+ or PostgreSQL 9.5.10+
Installation
-
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:
Usage
- 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
Connect to database
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');
Create and configure a new instance
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']);
Config login
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'); }
Methods to verify passwords
- 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'));
Redirect on successful login
To redirect user, you need pass the callback function:
$auth->make($auth->inputEmailAddress(), $auth->input('password'), 'md5', function (){ Osmo\Response::redirect('/'); });
Verify user login
You can check if a user is logged in, with the following function:
if(Osmo\SessionManager::auth()) { // }
Clean user session
To clean up the sessions, you need to run the following function:
Osmo\SessionManager::destroy();