我认为我有点误解
Identity = only MVC - returning Views
和WebAPI => you gotta go for token-ish way of authentication like JWT
所以,我想问
Is it possible to use that default AspNetCore's Identity with WebAPI?
或者我应该问Is javascript post/get attaching Cookies to it?
答案 0 :(得分:1)
是的,有可能。不过,某些JS库要求您启用cookie的传递。例如,Axios要求您设置withCredentials:true。
答案 1 :(得分:0)
您可以使用或Identity
(cookie身份验证)基于令牌的身份验证(例如OAuth
),也可以同时使用两者。这取决于您的需求。
在javascript中,您可以发送cookie和授权标头进行授权。
答案 2 :(得分:0)
是否可以将默认的AspNetCore身份与WebAPI一起使用?
是的。它将像在默认Asp.Net Mvc
模板中一样工作。您的AccountController
可能看起来像这样:
public class AccountController : Controller
{
private readonly SignInManager<ApplicationUser> _signInManager;
public AccountController(SignInManager<ApplicationUser> signInManager)
{
_signInManager = signInManager;
}
public async Task<IActionResult> Login(string login, string password)
{
var result = await _signInManager.PasswordSignInAsync(login, password, true, lockoutOnFailure: false);
if (result.Succeeded)
{
//process successful result
}
else
{
//process failed result
}
}
}
SignInManager<>.PasswordSignInAsync()
将分配必要的cookie以处理身份验证。
答案 3 :(得分:0)
从技术角度来看,Cookie只是一个HTTP标头,就像Authorization标头一样,因此您可以使用Cookie保护您的API。
事实上,如果您的API只是在同一域中提供SPA,那么cookie是一种更好,更安全的选择。
令牌基础身份验证适用于API为具有不同访问级别的不同域上的多个客户端提供服务的方案。在这种情况下,将身份验证服务器与API服务器分开是很有意义的。
我建议阅读以下文章: