Feature Documentation
This demo app demonstrate 26 features related to authentication and security. Below are the instructions how to find them and see them in action. The features are split into basic and advanced categories. The basic features are numbers B1-B13, advanced features are numbered A1-A13.
You can get the code from GitHub of both backend and frontend applications and play with it locally. Instructions how to configure a local environment can be found in respective repositories.
The detailed explanation of the advanced features can be found in this Blog
Basic features
1
Create a new user2
Login with email and password3
'Remember me' feature to stay logged in4
Logout from the current session5
Delete your own account6
OAuth via LinkedIn or Google7
Email verification8
Access based on the email verification status9
Change the current password10
Reset the forgotten password11
As admin request a user to change the password12
As admin block a user13
As admin request a user to re-login
Advanced features
1
Send the link to restore the deleted account2
Link local account with OAuth accounts3
Prevent some user roles to use OAuth4
Logout from OAuth providers5
2FA including 2FA with OAuth6
Extending JWT for active users7
Auto logout with timeout counter8
Advanced role based access control9
One login only10
Logout from all devices11
Login as another user12
Require password check for the critical actions13
Sync auth status across browser tabs
Sign in menu
Top menu
Left menu
User profile
Auto logout
Admin interface
B7
After signing up, a verification email is sent to the specified email address.A1
After the user clicks “Delete Account,” an email with an account restoration link is sent.A2
Accounts are linked automatically based on the email address.A3
This is managed via the configuration table. In the Demo app, users with admin roles cannot use OAuth.A6
This process is automatic. When the user loads the app, the JWT token is recreated with the same parameters, thereby extending its validity time.A9
This is managed via the configuration table. The Demo app is not configured to demonstrate feature A10 (Logout from all devices). If activated, signing in on one device will automatically sign the user out from all other devices.A12
This is implemented using the ‘passwordCheck’ middleware. In the demo app, it's set up for feature A11 (Impersonation).A13
This is a frontend feature, implemented using the Broadcast Channel API.
The backend source code, which is the main part of this application, is licensed under the MIT license. This means you can use it however you want, including for unlimited commercial purposes.
The frontend part of the application is for demo purposes only, allowing you to see the authentication features in action and experiment with it in your local or development environment.