acm-udayton / acm-udayton/ACM-Meeting-Records

[FEATURE] Add JWT authentication endpoints

Open
#157 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
7
Forks
2
Avg merge
4d 23h
Merged PRs (30d)
2

Description

## Feature Description

Replicate our existing session-based authentication and MFA flow with JWTs.

---

## Acceptance Criteria & Solution Requirements
*To close this issue, the following must be met (can be finalized in the comments):*
- [ ] 1. Application runs as expected with the new feature integrated seamlessly.
- [ ] 2. Code quality metrics are maintained, and linting has been considered in development.
- [ ] 3. Testing metrics are maintained, and tests have been updated/added wherever relevant during development.
- [ ] 4. Documentation has been updated to reflect the changes made during development.
- [ ] 5. Add a /api/v1/login REST endpoint to request username and password. If not an MFA-enabled account, issue the `access_token` and `refresh_token` JWTs. If MFA is enabled, issue a short-lived (5 minutes) intermediate `mfa_token`.
- [ ] 6. Add a /api/v1/mfa-otp REST endpoint to request MFA OTP. Require a `mfa_token` be sent as the bearer. If MFA is correct, issue the `access_token` and `refresh_token` JWTs.
- [ ] 7. Add a /api/v1/mfa-recovery REST endpoint to request MFA recovery code. Require a `mfa_token` be sent as the bearer. If MFA is correct, issue the `access_token` and `refresh_token` JWTs.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.