Requirements
Functional Requirements
What the product must do.
- Allow users to authenticate with JWTs
- Allow users to login with GitHub if their account email is the same as their GitHub email
- Allow users to login with Google if their account email is the same as their Google email
- Allow users to login with email/password
Non-Functional Requirements
How the product must behave.
- Auto-link users to their OAuth provider account if logging in with OAuth provider for the first time
- Follow OAuth 2.0 protocol
- Issue and verify JWTs
Out of Scope
Items that are specifically excluded from this feature.
- Apple login
- Facebook login
- Login with username/password
- Phone number login
- SMS multi-factor authentication
- SMS verification
- Twitter login
Acceptance Criteria
Overall acceptance criteria for the feature.
Requirements
Functional Requirements
Non-Functional Requirements
Out of Scope
Acceptance Criteria
Scenario: Successful login with GitHub
GivenWhenAndThenScenario: Successful login with Google
GivenWhenAndThenScenario: Successful login with email and password
GivenWhenAndThenScenario: Failed login with GitHub
GivenWhenAndThenScenario: Failed login with Google
GivenWhenAndThenScenario: Failed login with email and password
GivenWhenAndThenScenario: An unknown error occurs
Givena request is sentWhenan unknown error occursThensend500response