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"