@ -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,8 +116,10 @@ func (s *AuthServer) requireAuth(next http.Handler) http.HandlerFunc {
w . Write ( [ ] byte ( err . Error ( ) ) )
return
} else {
tokenParsed , err := s . parseToken ( authorizationHeaderAttributes [ 1 ] )
}
//
tokenParsed , err := s . parseToken ( token )
if err != nil {
s . logger . Error ( err . Error ( ) )
@ -137,7 +145,6 @@ func (s *AuthServer) requireAuth(next http.Handler) http.HandlerFunc {
//
// next.ServeHTTP(w, r.WithContext(ctx))
next . ServeHTTP ( w , r )
}
} )
}