From ccdb9bb61411bcb6e8a524d04f1c76cd2d58626a Mon Sep 17 00:00:00 2001 From: Viktor Patchev Date: Thu, 6 Jan 2022 18:54:44 +0100 Subject: [PATCH] Create refresh token and update db field --- database/models/user.go | 13 +++++++++++-- routes/auth/auth.ctrl.go | 10 +++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/database/models/user.go b/database/models/user.go index bfce6af..e0179fc 100644 --- a/database/models/user.go +++ b/database/models/user.go @@ -23,7 +23,6 @@ func (u *User) GenerateAccessToken(c echo.Context) error { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "id": u.ID, "email": u.Email, - }) t, err := token.SignedString([]byte("secret")) @@ -35,5 +34,15 @@ func (u *User) GenerateAccessToken(c echo.Context) error { } func (u *User) GenerateRefreshToken(c echo.Context) error { - return nil + refreshToken := jwt.New(jwt.SigningMethodHS256) + rtClaims := refreshToken.Claims.(jwt.MapClaims) + rtClaims["sub"] = 1 + + rt, err := refreshToken.SignedString([]byte("secret")) + if err != nil { + return err + } + u.RefreshToken = rt + + return err } \ No newline at end of file diff --git a/routes/auth/auth.ctrl.go b/routes/auth/auth.ctrl.go index 14757a5..76fb0d8 100644 --- a/routes/auth/auth.ctrl.go +++ b/routes/auth/auth.ctrl.go @@ -54,13 +54,21 @@ func (AuthRouter) Auth(c echo.Context) error { if err != nil { return err } + err = user.GenerateRefreshToken(c) + if err != nil { + return err + } if err := db.Model(&user).Where("id = ?", user.ID).Update("access_token", user.AccessToken).Error; err != nil { return c.JSON(http.StatusInternalServerError, echo.Map{ "message": "server error, try again", }) } - + if err := db.Model(&user).Where("id = ?", user.ID).Update("refresh_token", user.RefreshToken).Error; err != nil { + return c.JSON(http.StatusInternalServerError, echo.Map{ + "message": "server error, try again", + }) + } //var cookie http.Cookie // //cookie.Name = "token"