As a user, i should be able to login on the web app
Acceptance criteria
- on visiting the PendulumPay web app
- Now clicking "Login" button on the top right corner of the screen
- on
/login show two fields
- "Email" - only emails should be accepted here and no other text
- "Password" - only passwords should be accepted in this field
- Show a "Login" button below these two fields, the button should be enabled only after the two fields are filled
- On clicking the "Login" button,
- if the submitted Email and Password dont exist in our database. Show error below "Login" button, text is "Incorrect data, Please try again"
- on clicking the "Login" button, if successful
- On the top right corner, show "logout" button. on clicking the button, the user is logged out
- if correct and email validated, then return a session cookie
- session cookie
- we could either manage sessions in the database or using JWT (the latter option is probably simpler)
- preferred, because simpler: JWT
- expiry time should be rather short for a financial product, maybe 30 minutes
Note
- The Login flow is simple, with no account management. Basic login and logout, not password change.
Standard secure Login/Signup flow
Due to GDPR we need to use secure practices that do not expose whether an email address is in our system.
General principles
- all passwords are allowed, only requirement is minimum length, e.g., 8 or 10
- no other requirements (particularly no password rules like uppercase, lowercase, etc)**
- (for a low priority feature we will implement later, we will check in the backend whether the password is common or has been pwned)
- passwords and emails are always normalized in backend (both for login and signup)
- password: trim whitespace at beginning and end
- email: trim whitespace at beginning and end, make everything lowercase
- passwords use a password hashing algorithm, the hashed passwords is a field of the user table in the database
Lo-fi wireframes

As a user, i should be able to login on the web app
Acceptance criteria
/loginshow two fieldsNote
Standard secure Login/Signup flow
Due to GDPR we need to use secure practices that do not expose whether an email address is in our system.
General principles
Lo-fi wireframes