Мне нужен только пользователь с идентификатором пользователя чтобы иметь доступ к своей конечной точке, а не к конечным точкам любого другого пользователя.
Я реализовал токен JWT Bearer, который используется для авторизации. Я получаю от него идентификатор и проверяю, соответствует ли он маршруту, к которому хочет получить доступ пользователь:
Код: Выделить всё
[HttpGet("{userId:int}"), Authorize]
public async Task GetUserById([FromRoute] int userId)
{
var id = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
if (id != userId)
{
return BadRequest("Access denied.");
}
var user = await unitOfWork.UserRepository.GetUserByIdAsync(userId);
if (user == null)
return NotFound("User not found");
return Ok(user);
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... i-endpoint
Мобильная версия