Download the PHP package germania-kg/permanent-authentication without Composer
On this page you can find all versions of the php package germania-kg/permanent-authentication. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package permanent-authentication
Germania KG · PermanentAuth
This package was destilled from legacy code!
Requirements
- Anthony Ferrara's ircmaxell/RandomLib
Installation with Composer
MySQL users may install the table auth_logins using auth_logins.sql.txt
in sql/
directory.
Create a persistent login
This Callable stores a selector and token pair in a cookie on the client side and stores the selected and hashed token in the database. Five ingredients are required:
rnd: An instance of RandomLib Generator for creating secure random numbers and strings.
client_storage: A Callable that stores the selector and token pair on the client-side. On error, it should throw an Exception implementing Germania\PermanentAuth\Exceptions\StorageExceptionInterface. – Create your own or try the implementation described in ClientStorage section below
hasher: A Callable that securely hashes the random token created by RandomLib. It is recommended to use PHP's password_hash.
server_storage: A Callable that stores selector and token hash in the database. On error, it should throw an Exception implementing Germania\PermanentAuth\Exceptions\StorageExceptionInterface. – Create your own or try the implementation described in PdoStorage section below.
valid_until: A PHP DateTime object which holds the expiration date and time.
Authenticate a user with permanent login
This Callable tries to retrieve and return a persistent login selector and token. It does not validate the user! — In other words, it tells you who the re-visiting user claims to be.
Helpers
AuthUserInterface
Defines interceptors for the User ID. Required by PermanentAuth\Middleware which expects a user object-
Middleware
This PSR-style Middleware identifies a user and validates the claimed login selector against database. On success, assign found User ID to user object.
Requires a PermanentAuth\AuthUserInterface instance.
ClientStorage
Store selector and token on the client-side. Random-generated selector and token are base64-encoded and sent to the Client as cookie, together with expiration date.
PdoStorage
Store selector and token hash in the database, together with expiration date.
PdoValidator
Validate a login selector and token against token hash in the database.
PdoDelete
Remove all permanent logins for a given user.
Development
Unit tests
Either copy phpunit.xml.dist
to phpunit.xml
and adapt to your needs, or leave as is. Run PhpUnit test or composer scripts like this:
Setup a MySQL table auth_logins
as in sql/auth_logins.sql.txt
.
In phpunit.xml
, edit the database credentials:
All versions of permanent-authentication with dependencies
psr/log Version ^1.0
psr/http-message Version ^1.0
paragonie/random-lib Version ^2.0