Marco
854bc2b62b
Swap positions of hyphen and underscore characters in URL-safe Base64
...
This ensures compatibility with RFC 4648 and the example from the
appendix of RFC 7515, aside from the padding character that is used.
2017-07-23 23:18:28 +02:00
Marco
01a52b76bc
Switch characters in URL-safe Base64 to use tilde (~) for padding
...
The tilde character is less familiar to most users and harder to type
on most keyboards (compared to the hyphen and underscore characters).
2017-07-23 22:56:28 +02:00
Marco
ad88c1c6ab
Use tilde character (~) instead of dot (.) for URL-safe Base64 coding
...
The dot character is excluded from auto-linking in most email clients
and is ambiguous in all other contexts when occurring at the end of a
URL. The tilde character, being the only unreserved character for use
in URLs that remains, as per RFC 3986, is thus a good alternative.
2017-07-23 22:16:13 +02:00
Marco
449e1c69ee
Remove obsolete 'pre-check' and 'post-check' for 'Cache-Control'
2017-07-21 06:20:30 +02:00
Marco
63734fc5ee
Add 'Role' class with constants for individual roles or groups
2017-07-10 20:59:45 +02:00
Marco
0909291cf1
Support multi-factor authentication via 'onBeforeSuccess' callback
2017-07-02 23:12:36 +02:00
Marco
6aa3f58059
Add 'AttemptCancelledException'
2017-07-02 22:17:43 +02:00
Marco
47afa1c411
Remove enforcement of hard dependency on 'mysqlnd' in code
2017-06-20 02:19:46 +02:00
Marco
ee485f99ab
Ensure compatibility with SQLite which does not cast to native types
2017-06-12 20:29:58 +02:00
Marco
04a2e8ef4e
Throw error if 'libmysqlclient' driver is used instead of 'mysqlnd'
2017-03-18 22:21:23 +01:00
Marco
59505479a5
Add class 'WrongMysqlDatabaseDriverError'
2017-03-18 22:13:28 +01:00
Marco
fdcfd6f78c
Add class 'DatabaseDriverError'
2017-03-18 22:12:49 +01:00
Marco
93477e4e7e
Add shorthands for 'getStatus' in 'Auth' class
2017-02-26 13:45:00 +01:00
Marco
d59ac83d13
Refactor array definition in 'authenticateUserInternal'
2017-02-26 13:13:37 +01:00
Marco
9a0036b8a8
Add 'Status' class with constants
2017-02-26 13:05:37 +01:00
Marco
a05d277a2c
Read status from 'users' table and provide read access in session
2017-02-26 13:03:52 +01:00
Marco
2317423550
Explain that constructor of 'Administration' is for internal use only
2017-02-25 18:40:49 +01:00
Marco
26ca48c3b9
Improve language
2017-02-25 18:07:02 +01:00
Marco
9ec74b3b2d
Deprecate boolean format for parameter 'rememberDuration' with login
2017-02-25 18:06:07 +01:00
Marco
9c60acec0d
Improve code style
2017-02-25 17:58:29 +01:00
Marco
81bdd79906
Add method 'deleteUserById' and similar methods for email and username
2017-02-25 17:32:35 +01:00
Marco
63144d4dc0
Add private method 'deleteUsersByColumnValue' to 'Administration'
2017-02-25 17:14:24 +01:00
Marco
f06af42f87
Move method 'getUserDataByUsername' from 'Auth' to 'UserManager'
2017-02-25 16:18:51 +01:00
Marco
293c231003
Do not offer email verification when creating users as admin
2017-02-25 15:44:37 +01:00
Marco
cf41c9a105
Add methods 'createUser' and 'createUserWithUniqueUsername'
2017-02-21 10:02:03 +01:00
Marco
da4bb583bf
Add component for administrative tasks as class 'Administration'
2017-02-21 09:43:30 +01:00
Marco
d99979f270
Move method 'createUserInternal' from class 'Auth' to 'UserManager'
2017-02-21 09:28:42 +01:00
Marco
22872d55bd
Import class 'IntegrityConstraintViolationException' in 'UserManager'
2017-02-21 09:27:54 +01:00
Marco
ff6d78942a
Move method 'createConfirmationRequest' from 'Auth' to 'UserManager'
2017-02-21 09:26:10 +01:00
Marco
d27005df10
Import class 'Error' in 'UserManager'
2017-02-21 09:22:40 +01:00
Marco
ad2aa84e4a
Move method 'validatePassword' from class 'Auth' to 'UserManager'
2017-02-21 09:19:09 +01:00
Marco
f7d50d53ea
Move method 'validateEmailAddress' from class 'Auth' to 'UserManager'
2017-02-21 09:17:08 +01:00
Marco
e916c3d07e
Move method 'createRandomString' from class 'Auth' to 'UserManager'
2017-02-21 09:13:39 +01:00
Marco
fdeff8a792
Emphasize that class 'UserManager' is for internal use only
2017-02-21 09:03:55 +01:00
Marco
43fa612d67
Move method 'throttle' and its constants from 'Auth' to 'UserManager'
2017-02-21 08:55:10 +01:00
Marco
0b0258f29a
Manually require file 'Exceptions.php' in parent class as well
2017-02-21 08:45:27 +01:00
Marco
9252bee030
Let parent class 'UserManager' manage database connection for 'Auth'
2017-02-21 08:40:30 +01:00
Marco
6a15679238
Make class 'Base64' final
2017-02-21 08:28:14 +01:00
Marco
8ab08f41e1
Let autoloader fetch class 'Base64' instead of including it manually
2017-02-21 08:27:19 +01:00
Marco
83464c0be7
Improve description of 'Auth' class
2017-02-21 08:07:38 +01:00
Marco
b5c853388c
Make class 'Auth' final
2017-02-21 08:01:41 +01:00
Marco
5585623e08
Let class 'Auth' extend abstract class 'UserManager'
2017-02-21 08:00:26 +01:00
Marco
a7d640154c
Add abstract class 'UserManager'
2017-02-21 07:59:49 +01:00
Marco
3cb2284870
Add public method 'loginWithUsername' to class 'Auth'
2017-02-20 21:36:45 +01:00
Marco
690485ba6d
Add support for sign in via username to 'authenticateUserInternal'
2017-02-20 21:32:45 +01:00
Marco
495a87d499
No need to check for uniqueness of username if none has been provided
2017-02-20 20:52:02 +01:00
Marco
784030139b
Treat empty string or whitespace-only string as non-existent username
2017-02-20 20:48:03 +01:00
Marco
fb6f3d31b8
Add private method 'getUserDataByUsername' to class 'Auth'
2017-02-20 19:57:23 +01:00
Marco
370ecc4933
Add class 'AmbiguousUsernameException'
2017-02-16 09:48:55 +01:00
Marco
da2d282648
Add class 'UnknownUsernameException'
2017-02-16 09:48:04 +01:00