asp.net 核心 mvc web 应用程序中使用 web api 的基于令牌的身份验证
Token based authentication in a asp.net core mvc web application using web api
我有一个 .net core 2.2 Web 应用程序,其中通过 Web api 处理数据库调用。我正在尝试使用 Web api 验证我的应用程序。我在我的网站 api 上生成了一个 JWT 令牌。但我无法在我的 Web 应用程序中检索该令牌。
如何在我的 Web 应用程序中使用 Web api 颁发的令牌来访问更多模块?
提前致谢!
我的网络应用程序中的代码:
Task<OkObjectResult> ValidUser = commonHelper.CheckValidUserToken(identity);
从网络返回令牌的代码api:
OkObjectResult tokenObject = Ok(
new
{
token = new JwtSecurityTokenHandler().WriteToken(token),
expiration = token.ValidTo
});
return tokenObject;
我需要获取令牌以访问 Web 中的控制器 api。现在我接到一个任务。
一般来说,您的客户端会将 HTTP 请求连同您的凭据发送到 Web api 端,Web api 将验证凭据、创建令牌并发送回您的客户端。
您没有提供客户代码。根据您的网站 api 返回 OkObjectResult
,您可以首先创建对象 class,例如:
public class Value
{
public string token { get; set; }
public string expiration { get; set; }
}
public class RootObject
{
public Value value { get; set; }
public int statusCode { get; set; }
}
并反序列化从响应中读取到对象的 json 字符串,获取令牌值,例如:
// call api
var apiClient = new HttpClient();
var response = await apiClient.GetAsync("https://localhost:44348/api/values");
if (!response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode);
}
else
{
var content = await response.Content.ReadAsStringAsync();
RootObject rootObject = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(content);
var token = rootObject.value.token;
}
我们不知道 CheckValidUserToken
函数是什么,但您应该检查客户端应用程序如何发送令牌请求并读取响应。
我有一个 .net core 2.2 Web 应用程序,其中通过 Web api 处理数据库调用。我正在尝试使用 Web api 验证我的应用程序。我在我的网站 api 上生成了一个 JWT 令牌。但我无法在我的 Web 应用程序中检索该令牌。
如何在我的 Web 应用程序中使用 Web api 颁发的令牌来访问更多模块?
提前致谢!
我的网络应用程序中的代码:
Task<OkObjectResult> ValidUser = commonHelper.CheckValidUserToken(identity);
从网络返回令牌的代码api:
OkObjectResult tokenObject = Ok(
new
{
token = new JwtSecurityTokenHandler().WriteToken(token),
expiration = token.ValidTo
});
return tokenObject;
我需要获取令牌以访问 Web 中的控制器 api。现在我接到一个任务。
一般来说,您的客户端会将 HTTP 请求连同您的凭据发送到 Web api 端,Web api 将验证凭据、创建令牌并发送回您的客户端。
您没有提供客户代码。根据您的网站 api 返回 OkObjectResult
,您可以首先创建对象 class,例如:
public class Value
{
public string token { get; set; }
public string expiration { get; set; }
}
public class RootObject
{
public Value value { get; set; }
public int statusCode { get; set; }
}
并反序列化从响应中读取到对象的 json 字符串,获取令牌值,例如:
// call api
var apiClient = new HttpClient();
var response = await apiClient.GetAsync("https://localhost:44348/api/values");
if (!response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode);
}
else
{
var content = await response.Content.ReadAsStringAsync();
RootObject rootObject = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(content);
var token = rootObject.value.token;
}
我们不知道 CheckValidUserToken
函数是什么,但您应该检查客户端应用程序如何发送令牌请求并读取响应。