// RefreshToken ... func RefreshToken(requestUser *models.User) []byte { authBackend := authentication.InitJWTAuthenticationBackend() token, err := authBackend.GenerateToken(requestUser.UUID) if err != nil { panic(err) } response, err := json.Marshal(models.TokenAuthentication{token}) if err != nil { panic(err) } return response }
// Logout ... func Logout(req *http.Request) error { fmt.Println("service logout") authBackend := authentication.InitJWTAuthenticationBackend() tokenRequest, err := jwt.ParseFromRequest(req, func(token *jwt.Token) (interface{}, error) { return authBackend.PublicKey, nil }) if err != nil { return err } tokenString := req.Header.Get("Authorization") return authBackend.Logout(tokenString, tokenRequest) }
// Login ... func Login(requestUser *models.User, password string) (int, []byte) { authBackend := authentication.InitJWTAuthenticationBackend() if authBackend.Authenticate(requestUser, password) { token, err := authBackend.GenerateToken(requestUser.UUID) if err != nil { return http.StatusInternalServerError, []byte("") } else { response, _ := json.Marshal(models.TokenAuthentication{token}) return http.StatusOK, response } } return http.StatusUnauthorized, []byte("") }