codecollab/authentication

Authentication package of the CodeCollab project

1.0.0 2016-07-16 21:20 UTC

This package is auto-updated.

Last update: 2024-04-06 07:50:14 UTC


README

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"
    }
}

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 password 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

Security issues

If you found a security issue please contact directly by mail instead of using the issue tracker at codecollab-security@pieterhordijk.com