![]() ![]() |
Info | ![]() |
![]() |
![]() ![]() |
Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2016-07-27 (3 months ago) ![]() | ![]() ![]() ![]() ![]() | Total: 154 This week: 2 | All time: 8,144 This week: 591![]() |
Version | License | PHP version | Categories | |||
php-auth 1.0 | MIT/X Consortium ... | 5 | PHP 5, Databases, User Management |
Description | Author | |
This class can register and login users stored in a database. |
PHPAuth is a secure user authentication class for PHP websites, using a powerful password hashing system and attack blocking to keep your website and users secure.
PHPAuth can now be installed with the following command:
composer require phpauth/phpauth
Then: require 'vendor/autoload.php';
The database table config
contains multiple parameters allowing you to configure certain functions of the class.
site_name
: the name of the website to display in the activation and password reset emailssite_url
: the URL of the Auth root, where you installed the system, without the trailing slash, used for emails.site_email
: the email address from which to send activation and password reset emailssite_key
: a random string that you should modify used to validate cookies to ensure they are not tampered withsite_timezone
: the timezone for correct datetime valuessite_activation_page
: the activation page name appended to the site_url
in the activation emailsite_password_reset_page
: the password reset page name appended to the site_url
in the password reset emailcookie_name
: the name of the cookie that contains session information, do not change unless necessarycookie_path
: the path of the session cookie, do not change unless necessarycookie_domain
: the domain of the session cookie, do not change unless necessarycookie_secure
: the HTTPS only setting of the session cookie, do not change unless necessarycookie_http
: the HTTP only protocol setting of the session cookie, do not change unless necessarycookie_remember
: the time that a user will remain logged in for when ticking "remember me" on login. Must respect PHP's strtotime format.cookie_forget
: the time a user will remain logged in when not ticking "remember me" on login. Must respect PHP's strtotime format.bcrypt_cost
: the algorithmic cost of the bcrypt hashing function, can be changed based on hardware capabilitiessmtp
: 0
to use sendmail for emails, 1
to use SMTPsmtp_host
: hostname of the SMTP serversmtp_auth
: 0
if the SMTP server doesn't require authentication, 1
if authentication is requiredsmtp_username
: the username for the SMTP serversmtp_password
: the password for the SMTP serversmtp_port
: the port for the SMTP serversmtp_security
: NULL
for no encryption, tls
for TLS encryption, ssl
for SSL encryptionverify_password_min_length
: minimum password length, default is 3
verify_password_max_length
: maximum password length, default is 150
verify_password_strong_requirements
: use strong password requirments (at least one uppercase and lowercase character, and at least one digit), default is 1
(true
)verify_email_min_length
: minimum EMail length, default is 5
verify_email_max_length
: maximum EMail length, default is 100
verify_email_use_banlist
: use banlist while checking allowed EMails (see /files/domains.json
), default is 1
(true
)attack_mitigation_time
: time used for rolling attempts timeout, default is +30 minutes
. Must respect PHP's strtotime format.attempts_before_verify
: maximum amount of attempts to be made within attack_mitigation_time
before requiring captcha. Default is 5
attempt_before_block
: maximum amount of attempts to be made within attack_mitigation_time
before temporally blocking the IP address. Default is 30
password_min_score
: the minimum score given by zxcvbn that is allowed. Default is 3
The rest of the parameters generally do not need changing.
If isBlocked()
returns verify
, then a CAPTCHA code should be displayed.
The method checkCaptcha($captcha)
is called to verify a CAPTCHA code. By default this method returns true
, but should be overridden to verify a CAPTCHA.
For example, if you are using Google's ReCaptcha NoCaptcha, use the following code:
private function checkCaptcha($captcha)
{
try {
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = ['secret' => 'your_secret_here',
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']];
$options = [
'http' => [
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return json_decode($result)->success;
}
catch (\Exception $e) {
return false;
}
}
If a CAPTCHA is not to be used, please ensure to set attempt_before_block
to the same value as attempts_before_verify
.
Making a page accessible only to authenticated users is quick and easy, requiring only a few lines of code at the top of the page:
<?php
include("Config.php");
include("Auth.php");
$dbh = new PDO("mysql:host=localhost;dbname=phpauth", "username", "password");
$config = new PHPAuth\Config($dbh);
$auth = new PHPAuth\Auth($dbh, $config);
if (!$auth->isLogged()) {
header('HTTP/1.0 403 Forbidden');
echo "Forbidden";
exit();
}
?>
The language for error and success messages returned by PHPAuth can be configured by passing in one of
the available languages as the third parameter to the Auth constructor. If no language parameter is provided
then the default en_GB
language is used.
Example: $auth = new PHPAuth\Auth($dbh, $config, "fr_FR");
Available languages:
en_GB
(Default)da_DK
de_DE
fa_IR
fr_FR
gr_GR
it_IT
nl_BE
nl_NL
no_NB
pt_BR
ru_RU
se_SE
vi_VN
Documentation
---------------All class methods are documented in the Wiki System error codes are listed and explained here
Anyone can contribute to improve or fix PHPAuth, to do so you can either report an issue (a bug, an idea...) or fork the repository, perform modifications to your fork then request a merge.
![]() |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Lic. | License text | ||
![]() ![]() |
Doc. | Documentation |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
User Ratings | ||||||||||||||||||||||||||||||
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.