我正在编写一个Web API,我需要提交表单数据,但在提交之前我需要检查,用户是否经过身份验证。所以,我在angularjs客户端使用基于令牌的身份验证,并在localstorage中保存令牌。
但我不知道如何传递我的令牌与表格数据,该表格数据存储在localstorage中并在控制器的Post方法上获取,如下所示。
public IHttpActionResult Post([FromBody]Customer cust)
{
var newCust = _Repository.InsertCustomer(cust);
if (newCust != null)
{
**// need to get token here which is saved in local storage**
return Created<Customer>(Request.RequestUri + newCust.ID.ToString(), newCust);
}
else
{
return Conflict();
}
}
请提供代码示例的解决方案。
答案 0 :(得分:0)
您可以使用您以前存储的密钥从本地存储中获取令牌,如
var token = JSON.parse($window.localStorage.getItem("tokenKey"));
然后在请求标头中设置令牌
$httpProvider.defaults.common['Authorization'] = token;
并在webapi控制器中从标题
获取令牌IEnumerable<string> tokens;
var hastoken = Request.Headers.TryGetValues("Authorization", out tokens);
然而,这只是理解的简单实现,您应该根据应用程序设计进行更多搜索并遵循标准实践。