.net Angular和Web Api 2身份验证:承载令牌

.net Angular和Web Api 2身份验证:承载令牌,.net,angularjs,authentication,asp.net-web-api,.net,Angularjs,Authentication,Asp.net Web Api,我正在angular js和ASP.NET Web Api 2后端中创建一个应用程序。我正试图弄清楚如何进行身份验证。我计划使用无记名代币而不是cookies,因为这似乎是一种更现代的方法。我将有一个用户登录表单,他们可以输入他们的密码和用户名。我是否应该将用户名和密码传递给我的Web Api,让它返回一个承载令牌,然后将其存储在localStorage中?如何在每个后续请求中传递该令牌,以便访问受保护的资源?我需要任何特殊的角度模块来进行这种类型的身份验证吗?您可以在Web Api中使用防伪令

我正在angular js和ASP.NET Web Api 2后端中创建一个应用程序。我正试图弄清楚如何进行身份验证。我计划使用无记名代币而不是cookies,因为这似乎是一种更现代的方法。我将有一个用户登录表单,他们可以输入他们的密码和用户名。我是否应该将用户名和密码传递给我的Web Api,让它返回一个承载令牌,然后将其存储在localStorage中?如何在每个后续请求中传递该令牌,以便访问受保护的资源?我需要任何特殊的角度模块来进行这种类型的身份验证吗?

您可以在Web Api中使用防伪令牌。 服务器对用户进行身份验证。来自服务器的响应包括身份验证cookie。 服务器在响应中包含两个令牌。一个令牌作为cookie发送。另一个放置在隐藏的表单字段中。令牌是随机生成的,因此对手无法猜出值

当客户端提交表单时,它必须将这两个令牌发送回服务器。客户端将cookie令牌作为cookie发送,并在表单数据中发送表单令牌。(当用户提交表单时,浏览器客户端会自动执行此操作。)

如果一个请求不包含这两个令牌,服务器将不允许该请求。
在Angular中,您必须在每个http POST请求中传递隐藏字段参数(令牌)。

这是一个太宽泛的问题。您应该能够在web搜索中找到有关此主题的大量信息。另外,
$http
文档还包含有关处理头的信息