Отправляю токен на клиенте через axios:
const refresh = Cookies.get(refreshTokenInCookies);
const response = await axios
.put<ITokens>("/tokensupdate", {
RefreshToken: refresh ?? "",
}).then();
console.log(response);
На сервере есть атрибут проверки валидации, выгледит так:
public class ValidationFilter : IActionFilter
{
public ValidationFilter(ILogger<ValidationFilter> logger)
{
_logger = logger;
}
private readonly ILogger<ValidationFilter> _logger;
public void OnActionExecuted(ActionExecutedContext context)
{
}
public void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
_logger.LogError("Model is valid");
context.Result = new BadRequestResult();
}
}
}
[AttributeUsage(AttributeTargets.Method)]
public class ValidationFilterAttribute : ServiceFilterAttribute
{
public ValidationFilterAttribute() : base(typeof(ValidationFilter))
{
}
}
Вот сам endpoint:
[HttpPut, Route("tokensupdate"), AnonymousOnly, ValidationFilter]
public async Task<IActionResult> TokensUpdate([FromBody] string RefreshToken)
Если убераю этот атрибут все нормально, получаю токены с 200 кодом, если этот атрибут есть то 400 код.
Так вот, почему? По какой причине binding работает нормально(то есть данные отправленные должны быть валидны), но при этом Model.IsValid = false.