我当前正在使用自定义身份验证系统,并且在我的一个控制器中,我想使用HttpContext.GetTokenAsync
来检索我的令牌。
我想这样使用它:
HttpContext.GetTokenAsync(MyOAuthAuthenticationDefaults.AuthenticationScheme, "access_token")
我在身份验证系统中的哪里将令牌值分配给"access_token"
以便能够像这样检索它?
它是否从自定义声明中返回?
谢谢
答案 0 :(得分:0)
该令牌将保存到Cookie中的AuthenticationProperties
>
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, "xxxx"),
new Claim("FullName", "xxxxx"),
new Claim(ClaimTypes.Role, "Administrator"),
};
var claimsIdentity = new ClaimsIdentity(
claims, CookieAuthenticationDefaults.AuthenticationScheme);
var tokens = new List<AuthenticationToken>
{
new AuthenticationToken {Name = OpenIdConnectParameterNames.AccessToken, Value = "xxxxxxxxxxxxxxx"},
new AuthenticationToken {Name = OpenIdConnectParameterNames.RefreshToken, Value = "xxxxxxxxxxxxxxxxxx"}
};
var authProperties = new AuthenticationProperties();
authProperties.StoreTokens(tokens);
await HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity),
authProperties);
并通过:
var access_token =await HttpContext.GetTokenAsync(CookieAuthenticationDefaults.AuthenticationScheme, "access_token");