2017-09-16 86 views
0

我正嘗試使用ASP.NET Core中的JWT,但我很難理解如何在頁面導航中使用它。我有幾個控制器標有Authorize屬性,我需要將JWT包含在請求的頭部以便能夠訪問它們。如何在ASP.NET Core的頁面導航中包含JWT令牌

我已經在生成令牌,我只是不知道如何在導航到標有Authorize的頁面時在請求頭中包含令牌。

我的問題是:

  1. 如何將令牌添加到請求,所以我可以在導航與授權訪問的頁面?

  2. JWT令牌通常以這種方式(頁面導航)使用,還是主要用於API調用?像這樣使用它是錯誤的嗎?

  3. 我需要能夠存儲JWT,所以我可以將它們添加到請求標題中,並且我正在考慮將其存儲在Cookie中。這是否會導致基於cookie的認證有關CSRF的問題?

回答

0

JWT標記用於webservice/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); 
    } 
}