【问题标题】:How to include JWT token in page navigation in ASP.NET Core如何在 ASP.NET Core 的页面导航中包含 JWT 令牌
【发布时间】:2018-02-25 12:41:20
【问题描述】:

我正在 ASP.NET Core 中试用 JWT,但我不知道如何在页面导航中使用它。我有几个标有 Authorize 属性的控制器,我需要在请求的标头中包含 JWT 才能访问它们。

我已经在生成令牌,只是不知道在导航到标有授权的页面时如何将令牌包含在请求标头中。

我的问题是:

  1. 如何将令牌添加到请求中,以便在导航时使用授权访问页面?

  2. JWT 令牌通常以这种方式(页面导航)使用,还是主要用于 API 调用?这样用有错吗?

  3. 我需要能够存储 JWT,以便可以将它们添加到请求标头中,并且我正在考虑存储在 cookie 中。这不会给它带来基于 cookie 的身份验证在 CSRF 方面的问题吗?

【问题讨论】:

    标签: asp.net-core jwt


    【解决方案1】:

    JWT 令牌用于 Web 服务/Rest API 调用。

    对于 MVC 页面,您使用 Cookie,通常通过 ASP.NET Core Identity 完成。

    您还可以从控制器中使用 JWT,即,如果您调用远程 api。在这种情况下,您可以通过 HttpClientSetBearerToken 构建您的请求,就像这样

    public async Task<IActionResult> RemoteCall()
    {
        string accessToken = ...;
    
        using (var client = new HttpClient())
        {
            client.SetBearerToken(accessToken);
            string content = await client.GetStringAsync("https://example.com/api/resource");
    
            return Content(content);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 2020-01-23
      • 2021-10-13
      • 2018-03-30
      • 2020-09-04
      • 2020-07-01
      • 2015-01-09
      • 2019-08-03
      相关资源
      最近更新 更多