-
Notifications
You must be signed in to change notification settings - Fork 0
/
recovery.go
87 lines (68 loc) · 2.09 KB
/
recovery.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package nbc
// import (
// "context"
// "encoding/json"
// "net/http"
// "github.com/go-redis/redis/v9"
// "github.com/pmoieni/nimbus-cloud/internal/req"
// "golang.org/x/crypto/bcrypt"
// )
// type resetPasswordReq struct {
// Email string `json:"email"`
// Token string `json:"token"`
// NewPassword string `json:"new_password"`
// }
// func (s *AuthService) ResetPassword(w http.ResponseWriter, r *http.Request) {
// rp := resetPasswordReq{}
// if err := req.Parse(r, &rp); err != nil {
// http.Error(w, err.Error(), http.StatusBadRequest)
// return
// }
// err := s.resetPassword(&rp)
// if err != nil {
// http.Error(w, err.Error(), http.StatusBadRequest)
// return
// }
// w.WriteHeader(http.StatusOK)
// }
// func (s *AuthService) SendPasswordResetToken(w http.ResponseWriter, r *http.Request) {
// }
// // ----------------------- SERVICES ------------------------
// func (s *AuthService) resetPassword(r *resetPasswordReq) error {
// v := s.RedisPasswordTokenDB.Get(context.Background(), r.Token)
// // remove token since it's already used
// s.RedisPasswordTokenDB.Del(r.Token)
// tInfo := PasswordResetTokenReq{}
// err = json.Unmarshal([]byte(v), &tInfo)
// if err != nil {
// return err
// }
// // check if the token belongs to the email which is trying to reset the token
// if r.Email != tInfo.Email {
// return &models.ErrorResponse{Status: http.StatusForbidden, Message: http.StatusText(http.StatusForbidden)}
// }
// u := store.User{
// Email: r.Email,
// }
// userInfo, err := u.GetUser()
// if err != nil {
// return err
// }
// // check if new password is valid
// err = validatePassword(r.NewPassword)
// if err != nil {
// return &models.ErrorResponse{Status: http.StatusForbidden, Message: errBadPassword}
// }
// hashedPassword, err := bcrypt.GenerateFromPassword([]byte(r.NewPassword), bcrypt.DefaultCost)
// if err != nil {
// return err
// }
// updateUserInfo := store.User{
// Password: string(hashedPassword),
// }
// err = userInfo.Update(&updateUserInfo)
// if err != nil {
// return err
// }
// return nil
// }