This is a very basic example of authentication and authorization boilerplate using SQLPage. I try to avoid verbose code and duplication as much as possible.
- Login Form
- Signup Form
- Protected pages
- Role based access (RBAC)
- Resource ACL
git clone https://github.com/mnesarco/sqlpage_auth_example.git
cd sqlpage_auth_example
docker compose up
After docker services are up and runnig, Go to http://localhost:8087
- user has basic access
- user2 has manager access
- admin has full access
Password of all users is the same: demo
There are users and resources in the system. They are related through roles and access control lists (ACL)
roles can be granted or revoked from users. Each role has a level access to a resource pattern.
You can check if the current session (logged in user) has access to a specific resource with a certain authorization level:
-- Check if current user has access to products resource with a minimum level of 30
SELECT ...
WHERE x_resource_access(sqlpage.cookie('session'), 'products', level);
You can also check if a user has some role:
-- Check if current user has admin or manager roles
SELECT ...
WHERE x_role_access(sqlpage.cookie('session'), 'admin', 'manager');
This is an example of a possible solution using the existing version of SQLPage=0.17.1 Use at your own risk.