У меня есть проект ASP.NET Core с веб-API для мобильных устройств (Xamarin). Я хочу защитить API с помощью удостоверения ASP.NET Core, но проблема в том, что когда я аутентифицирую устройство и успешно аутентифицирую, в другом запросе оно еще не аутентифицировано:
[HttpPost]
public async Task<IActionResult> Post([FromBody] LogIn l)
{
var user = await userManager.FindByEmailAsync(l.username);
if(user == null)
{
user = await userManager.FindByNameAsync(l.username);
}
if(user != null)
{
await signInManager.SignOutAsync();
Microsoft.AspNetCore.Identity.SignInResult result = await signInManager.PasswordSignInAsync(user, l.password, false, false);
if (result.Succeeded)
{
await signInManager.RememberTwoFactorClientAsync(user);
return Ok("Success");
}
}
return Ok(HttpStatusCode.BadRequest);
}
Код, который должен авторизовать возврат данных:
[HttpGet("{id}")]
[Authorize]
public async Task<IActionResult> Get(int id)
{
var b = _context.Books.FirstOrDefault(o => o.BookId == id);
return Ok(b);
}
Я читал о токене и jwt, но не знаю, как их использовать. Любая идея, как защитить API и аутентифицировать устройство после входа в систему?