SirOphis / jscheduler

jscheduler 🗓️ - Your go-to solution for efficient scheduling, note-taking, and task management. This open-source project offers a user-friendly web-based platform to help you organize your life and work seamlessly.
MIT License
4 stars 0 forks source link

User service #4

Open SirOphis opened 1 year ago

SirOphis commented 1 year ago

Central hub for secure authentication, user management, and access control. This service is an integral part of our microservices architecture, designed to provide a seamless and secure experience for users interacting with the jscheduler platform.

USER DATA MODEL:

ROLE DATA MODEL:

PRIVILEGE DATA MODEL:

USER SPEC:

Login:

  1. Users can securely sign in using their email and password or through OAuth2 authentication with platforms like Facebook or Gmail.
  2. Passwords are hashed and salted using strong encryption algorithms to protect user information.
  3. Upon successful authentication, users are assigned their respective roles to access the application securely.

Sign Up:

  1. Users provide necessary information, including username, email, password, first name, last name, and birthdate. Alternatively, information can be retrieved from connected accounts like Google.
  2. Implement robust data validation to ensure accuracy and completeness.
  3. Users are assigned a default role, such as "User." Additional roles like 'Administrator' and 'Editor' can be assigned by an administrator.
  4. An email verification is sent to the user for confirmation after signing up.
  5. Users must verify their accounts before gaining full access to the application.

Password Recovery:

  1. Users who forget their passwords can enter their email address.
  2. A secure code along with a provisional password is sent to the user's email, allowing them to log in.
  3. Users are prompted to change their password immediately upon logging in for enhanced security.

ADDITIONAL CONSIDERATIONS:

Security Enhancements:

API Rate Limiting:

Logging and Monitoring:

User Profile Customization:

Localization: