Initial commit
This commit is contained in:
53
docs/zagros/reset-password/reset-password.md
Normal file
53
docs/zagros/reset-password/reset-password.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Registration: Reset password
|
||||
###### Sprint: 2
|
||||
|
||||
### Outcome:
|
||||
Users can reset login password by entering email and confirm by OTP code
|
||||
|
||||
### Implementation description:
|
||||
|
||||
#### Endpoints:
|
||||
POST {$domain}/api/v2/barong/identity/users/password/generate_code
|
||||
POST {$domain}/api/v2/barong/identity/users/password/confirm_code
|
||||
POST {$domain}/api/v2/barong/identity/users/password/reset
|
||||
|
||||
|
||||
#### File destination:
|
||||
{$Dalan_Path}/app/api/v2/identity/users.rb
|
||||
|
||||
#### Commits:
|
||||
9e17677b
|
||||
42b34ae2
|
||||
e04a58b0
|
||||
|
||||
#### What did we implement:
|
||||
In the Opendax, users get a reset token by entering their email, after in reset password page user can reset the password by entering a valid reset token and a new password
|
||||
|
||||
In Zagros, the reset password process is done in 3 steps, the first step is to generate OTP code by Vault, then is a step to check the OTP code in by separate API, and then reset the password
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
|
||||
Title: Reset password
|
||||
|
||||
User->>Ranj:email
|
||||
Ranj->>Dalan:Post: after client side checking
|
||||
Dalan->>Ranj:4xx if the user does not exist
|
||||
Dalan->>User:2xx send otp to his or her mail
|
||||
Ranj->>User:Ask OTP code for confirming
|
||||
User-->>Ranj:if OTP code not received, try for resend after <color:#red>120</color> seconds
|
||||
Ranj-->>Dalan: Ask for sending OTP code again
|
||||
Dalan-->>User:2xx send otp to his or her mail
|
||||
User->>Ranj: enter OTP code
|
||||
Ranj->>Dalan: OTP code for checking
|
||||
Dalan->>Ranj:4xx if user does not exist in the system
|
||||
Dalan->>Ranj:4xx if OTP code expired
|
||||
Dalan->>Ranj:2xx OTP code is check\n
|
||||
Ranj->>User: show reset password page
|
||||
Ranj->>Dalan: email, password, confirm_password
|
||||
Dalan->>Ranj:4xx if user does not exist in the system
|
||||
Dalan->>Ranj:4xx if new_password is not same to confirm_password
|
||||
Dalan->>Ranj:4xx if new password is not strong
|
||||
Dalan->>Ranj:2xx reset user password
|
||||
Ranj->>User:notify user that password changed
|
||||
```
|
||||
Reference in New Issue
Block a user