iroegbu / Authentication

Authentication package of the CodeCollab project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Authentication

Authentication package of the CodeCollab project

Build Status MIT License Latest Stable Version Total Downloads Latest Unstable Version

Requirements

PHP7+

Installation

Include the library in your project using composer:

{
    "require-dev": {
        "codecollab/authentication": "1.0.*"
    }
}

Usage

Creating an instance of User requires an instance of \CodeCollab\Http\Session\Session from the Http Library

User Authentication

The logIn function takes as arguments the password from the form, the passowrd hash from the database and the user's information (to be persisted in Session).

$user = new User($session);
if ($user->logIn($password_from_form, $hash_from_db, $user_info_from_db)) {
    /** login successful **/
} else {
    /** login failed */
}

Assuming there's a "remember me" feature implemented a user can simply be logged in without comparing password hashes.

if ($user->logInRememberMe($user_info_from_db)) {
    /** login successful **/
} else {
    /** login failed */
}

After a successful login, the user's information can be retrieved depending on what $user_info_from_db (in above snippet) contained:

$user_name = $session->get('user_name');
$user_id = $session->get('user_id');

Login Status

if ($user->isLoggedIn() {
    /** User is logged in **/
}

Password Rehash

To check for and rehash (when needed) a logged in user's password:

if ($user->needsRehash($hash_from_db)) {
    $new_hash = $user->rehash($password_from_form);
    //save $new_hash to database
}

Logout

$user->logOut();

Contributing

How to contribute

License

MIT

About

Authentication package of the CodeCollab project

License:MIT License


Languages

Language:PHP 100.0%