Как получить XSRF-TOKEN от asp.net mvc в vue js? - PullRequest
0 голосов
/ 04 июня 2019

В Backend я использовал веб-API asp.net и могу проверить токен, сравнив токен скрытого поля и токен 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));
    }
  }
}

Но я не могу создать токен XSRF на внешнем интерфейсе, используя Vue ? Как создать этот токен проверки XSRF на внешнем интерфейсе, чтобы впоследствии я мог отправить его обратно на сервер для проверки.

Здесь мои бэкэнд-и фронтенд-проекты - это отдельные проекты.

Кто-нибудь там ...

1 Ответ

0 голосов
/ 04 июня 2019

Маркер 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-and-spas

...