osmo/auth

Authentication for PHP 8. Secure and easy.

v1.0.0 2023-03-08 08:10 UTC

This package is not auto-updated.

Last update: 2024-05-01 23:14:11 UTC


README

Authentication for PHP 8. Secure and easy.

Total Downloads Latest Stable Version License

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

  1. Include the library via Composer:

    $ composer require osmo/auth
    
  2. Include the Composer autoloader:

    require __DIR__ . '/vendor/autoload.php';
  3. Set up a database and create the required tables:

Usage

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();