如何在 C sharp api 的 OpenID 连接流中获取令牌?
How to get token in OpenID connect flow in C sharp api?
我的 API 使用 OIDC 流程来访问它的方法。 OIDC 应该 return 一个 ID 令牌和一个访问令牌。
当我 运行 控制器时,我被发送到身份验证页面,我必须在其中输入我的登录凭据。登录成功后,我将被重定向回我的控制器 url - 例如 localhost:41223/api/Identity/GetInformation.
我的控制器方法如下:
[HttpGet]
[Authorize]
public ActionResult<int> GetInformation()
{
var information = User.Claims;
return 1;
}
id 令牌应包含经过身份验证的用户信息,可通过以下代码获得:
User.Claims;
如何检索访问令牌信息并将其解码以获得令牌过期时间?根据我的研究,我们必须解码 https://jwt.io/ 处的令牌。但是我们如何在代码中实际获取令牌呢?
我使用此代码来访问原始令牌
string idToken = HttpContext.GetTokenAsync("id_token").Result ?? "";
string accessToken = HttpContext.GetTokenAsync("access_token").Result ?? "";
要使其正常工作,您还必须将其设置为 true
options.SaveTokens = 真;
然后要解析令牌,您可以阅读更多相关信息 here
我的 API 使用 OIDC 流程来访问它的方法。 OIDC 应该 return 一个 ID 令牌和一个访问令牌。 当我 运行 控制器时,我被发送到身份验证页面,我必须在其中输入我的登录凭据。登录成功后,我将被重定向回我的控制器 url - 例如 localhost:41223/api/Identity/GetInformation.
我的控制器方法如下:
[HttpGet]
[Authorize]
public ActionResult<int> GetInformation()
{
var information = User.Claims;
return 1;
}
id 令牌应包含经过身份验证的用户信息,可通过以下代码获得:
User.Claims;
如何检索访问令牌信息并将其解码以获得令牌过期时间?根据我的研究,我们必须解码 https://jwt.io/ 处的令牌。但是我们如何在代码中实际获取令牌呢?
我使用此代码来访问原始令牌
string idToken = HttpContext.GetTokenAsync("id_token").Result ?? "";
string accessToken = HttpContext.GetTokenAsync("access_token").Result ?? "";
要使其正常工作,您还必须将其设置为 true
options.SaveTokens = 真;
然后要解析令牌,您可以阅读更多相关信息 here