c# - 如何在 vue js 中接收从 asp.net mvc 发送的 XSRF-TOKEN?
问题描述
在后端,我使用了 asp.net Web API,我可以通过比较隐藏字段令牌和 cookie 令牌来验证令牌,如下所示:
try
{
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
CookieHeaderValue cookie = Request.Headers
.GetCookies(AntiForgeryConfig.CookieName)
.FirstOrDefault();
if (cookie != null)
{
Stream requestBufferedStream = Request.Content.ReadAsStreamAsync().Result;
requestBufferedStream.Position = 0;
NameValueCollection myform = Request.Content.ReadAsFormDataAsync().Result;
try
{
AntiForgery.Validate(cookie[AntiForgeryConfig.CookieName].Value,
myform[AntiForgeryConfig.CookieName]);
}
catch (Exception ex)
{
throw new HttpResponseException(
new HttpResponseMessage(HttpStatusCode.Unauthorized));
}
}
}
但是我无法使用 Vue 在前端创建 XSRF 令牌?如何在前端创建此 XSRF 验证令牌,以便稍后将它们发送回后端进行验证。
在这里,我的后端和前端项目是独立的项目。
有人在吗...
解决方案
XSRF 令牌必须在后端创建并存储在 cookie 或前端的本地存储中。
检查 MS 文档以查看 vainilla javascript 和 angular 中的示例(Vue 必须相似)https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-2.2 #javascript-ajax 和水疗中心
推荐阅读
- python - 在 Python 中将数据透视为一行
- r - 如何用 sf 绘制 osm 文件?
- clockify - Clockify API 的问题,如何让估计再次工作
- objective-c - 钥匙串访问节目
作为对话框中的名称,而不是我创建密钥的名称 - node.js - 前后端共享TS接口
- haskell - 在haskell中显示约束类型
- javascript - I've got some troubles with return
- html - CSS 网格中的列表未按预期对齐
- sql - SQLite GROUP_CONCAT 来自另一个表,多个连接
- node.js - 如何从 node.js 中的请求中获取 api_version 参数?