slaventius 2 years ago
parent 63790b7d54
commit 58ab2f4d86
  1. 61
      internal/auth.go

@ -81,6 +81,16 @@ func (s *AuthServer) parseToken(token string) (*jwt.Token, error) {
})
}
// Проверка наличия токена
func (s *AuthServer) verifyValueToken(tokenHeader string) (string, error) {
authorizationHeaderAttributes := strings.Split(tokenHeader, " ")
if tokenHeader == "" || len(authorizationHeaderAttributes) < 2 {
return "", errors.New("token is empty")
}
return authorizationHeaderAttributes[1], nil
}
// Проверка срока жизни токена
func (s *AuthServer) verifyExpirationToken(token *jwt.Token) error {
now := float64(time.Now().Unix())
@ -96,13 +106,9 @@ func (s *AuthServer) requireAuth(next http.Handler) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// ctx := r.Context()
// Получим и проверим идентификатор сессии
authorizationHeader := r.Header.Get(HeaderAuthToken)
authorizationHeaderAttributes := strings.Split(authorizationHeader, " ")
if authorizationHeader == "" || len(authorizationHeaderAttributes) < 2 {
err := errors.New("token is empty")
//
//
token, err := s.verifyValueToken(r.Header.Get(HeaderAuthToken))
if err != nil {
s.logger.Error(err.Error())
//
@ -110,34 +116,35 @@ func (s *AuthServer) requireAuth(next http.Handler) http.HandlerFunc {
w.Write([]byte(err.Error()))
return
} else {
tokenParsed, err := s.parseToken(authorizationHeaderAttributes[1])
if err != nil {
s.logger.Error(err.Error())
//
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte(err.Error()))
}
return
}
//
tokenParsed, err := s.parseToken(token)
if err != nil {
s.logger.Error(err.Error())
//
erf := s.verifyExpirationToken(tokenParsed)
if erf != nil {
s.logger.Error(erf.Error())
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte(err.Error()))
//
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte(erf.Error()))
return
}
return
}
//
erf := s.verifyExpirationToken(tokenParsed)
if erf != nil {
s.logger.Error(erf.Error())
//
// next.ServeHTTP(w, r.WithContext(ctx))
next.ServeHTTP(w, r)
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte(erf.Error()))
return
}
//
// next.ServeHTTP(w, r.WithContext(ctx))
next.ServeHTTP(w, r)
})
}

Loading…
Cancel
Save