Here you will find a fully working login-system for PHP/MySQL(MariaSQL). It will contain the following:
- Encrypted passwords
The passwords are using PHP's own built in encrypting system to encrypt and verify passwords.
- User database with most if not all information you'd need.
I'm trying to get it all in there, but in the documentation folder you will find explanation on how to add fields if needed.
- Optional password aging
There will be password aging that will be checked at login. If the password is to old, the user can not log in, but will get
a dialog to change password. There is an option to set number of times before the same password can be used again.
- There is also password strength security
Passwords must be at least 8 characters long, contain at least one capital letter, one non capital and a number. In addition
to that, there also have to be a special character, including but not limited to: «#¤%&-».
- Password generator
A newly made user will get a generatred password. At first login, that will have to be changed to a strong password (see password strength security).
The user will also be presented with the password generator so he can choose to use that if he/she wants.
- Secure «forgot password» handling
Using a generated link with 50 random characters and a life time for the string on 30 minutes,
it minimises the possibility of someone capering the mail and using it.
- Downloadable as module
Once you are logged in, you can download the system (more bare bone than showed here) and easily implement it on your site.
- Documentation and SQL-files
Both the code itself that's documented with comments, so you always know what the routine is doing and the documentation follwoing the system (in the /doc/-folder in .pdf-format)
ensures that you just need limited knowlege of PHP and MariaSQL. When making the database, the SQL-files will help you,
together with HeidiSQL (a SQL controlling application).
Now let's log in to the system, so you can get the code (I have removed all the stash from the downloadable code)