I would like to announce the release of ‘flexi auth’, a user authentication (login) library.
The flexi auth library initially started out as a modified version of the popular Ion Auth library.
As the original library was tweaked with feature after feature being added, the original code base had transformed into a new library all of its own.
For those that have used the Ion Auth library, the general structure of the library may be familiar, but to help anyone wanting to get a running start with using flexi auth, there is an comprehensive user guide and demo covering every function within the library.
The flexi auth library includes the following core features:
+ User registration, with options to send an activation email, auto activate or suspend an account pending review by an admin.
+ Login function including a ‘Remember me’ option.
+ Logout function, with the option to log a user out of all computers they are logged into, or just the current computer.
+ User permission validation functions to check a users user group, privileges and login status.
+ Functions to reset forgotten passwords.
+ Functions to validate a users change of email address.
+ Password validation helper functions.
+ Many functions for obtaining user data stored within the database.
+ Admin CRUD functions to manage records within the libraries database tables.
+ Passwords are hashed using the popular PHPASS library.
+ Login sessions are managed via a hashed session token technique as described by Barry Jaspan.
+ Users making multiple failed login attempts can be set to have any further login attempts throttled by preventing them from making any further attempts for a short definable time period.
+ Googles reCAPTCHA or a custom math based question and answer CAPTCHA can be deployed to login and registration forms.
+ The library includes fully customisable email templates for account activation, forgotten password, new password and validate updated email.
+ Multilingual and customisable status and error messages.
+ A highly configurable config file allows you to customise how features within the library behave, ranging from password validation to login session expiry settings.
+ All database tables and column names are renamable via just one config file setting to match whatever name coding convention you prefer.
+ The library consists of only 5 tables to provide every feature within flexi auth.
+ Unlimited additional custom tables can be added and related to the core library tables, allowing you to capture whatever data you require.
+ The 5 core library tables can be modified with the addition of new columns that can then be managed via library functions.
The purpose of the flexi auth library is to offer modularised user authentication features, that allow a developer to pick and choose which features they require, without having to include features that are surplus to the clients requirements.
The library, documentation, and a comprehensive live online demo are available from the flexi auth site.
The work on the library started well over a year ago and has been used for some of my own client sites.
I would now like to release the code to the public so that others can also make use of it.
P.s. If anyone particularly likes the style of this library, I have also built a comprehensive shopping cart library called ‘flexi cart’. Like the flexi auth library, it is highly customisable including features like shipping, taxes, discounts, reward points, multiple currencies, localisation plus much much more.
The flexi cart library is available from http://haseydesign.com/flexi-cart