У меня есть конечная точка регистратора и конечная точка входа в систему, которая отвечает JWT
Но при получении этого JWT этот процесс выдает INVALID TOKEN
func ValidarToken(w http.ResponseWriter, r *http.Request) bool {
token, err := request.ParseFromRequestWithClaims(r, request.OAuth2Extractor, &models.Claim{}, func(token *jwt.Token) (interface{}, error){
return VerifyKey, nil
})
if err != nil {
switch err.(type) {
case *jwt.ValidationError:
vErr := err.(*jwt.ValidationError)
switch vErr.Errors {
case jwt.ValidationErrorExpired:
http.Error(w, "Su token ha expirado "+err.Error(),http.StatusUnauthorized)
case jwt.ValidationErrorSignatureInvalid:
http.Error(w, "La firma del token no coincide "+err.Error(),http.StatusUnauthorized)
default:
http.Error(w, "Su token no es válido "+err.Error(),http.StatusUnauthorized)
}
default:
http.Error(w, "Su token no es válido "+err.Error(),http.StatusUnauthorized)
}
return false
}
Я прочитал много документации, но я не могу понять, почему тот же токен, который я генерирую, не распознается тем же приложением
Спасибо
Обновлено :
Это мой код Generate JWT
func GeneroJWT(t models.Usuario) (string, error) {
leoClaves()
payload := jwt.MapClaims{
"email": t.Email,
"nombre": t.Nombre,
"apellidos": t.Apellidos,
"fecha_nacimiento": t.FechaNacimiento,
"biografia": t.Biografia,
"ubicacion": t.Ubicacion,
"sitioweb": t.SitioWeb,
"exp": time.Now().Add(time.Hour * 24).Unix(),
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, payload)
tokenStr, err := token.SignedString(SignKey)
if err != nil {
return tokenStr, err
}
return tokenStr,nil
}