# Authentication

## Purpose

Define user login and registration.

---

# Supported Methods

Users should be able to:

## Email Registration

Create account using:

- Email.
- Password.
- Confirmation.

---

## OAuth Registration/Login

Support:

- Google.
- Microsoft.

---

# Expected Behaviour

If OAuth user does not exist:

Create account automatically.

Example:

User clicks:

"Continue with Google"

↓

Authenticate

↓

No account exists

↓

Create account

↓

Login

---

# Password Requirements

Support:

- Secure hashing.
- Password reset.
- Password change.

---

# Authentication UX

Users should have:

- Clear errors.
- Loading states.
- Recovery options.

Avoid:

"Authentication failed"

without explanation.