我有一個 Blazor 服務器應用程式正在運行,并啟用了 Azure AD B2C 身份驗證。
一切似乎都運行良好,我可以訪問用戶的 JWT 令牌,我可以將其與我的 API 請求一起傳遞給后端......
但是,1 小時后,令牌過期(我也可以檢查我的邏輯以查看令牌是否已過期)。在那種情況下,我顯然很想獲得一個新的令牌,使用重繪 令牌......
但這就是問題所在: 中的refresh_token
令牌HttpContext
似乎是空的,而 中id_token
包含實際的 JWT 不記名令牌。
這可能是什么原因?(我的兩個令牌都是空的,但從來沒有只有 refresh_token 不是空的)。
一些可能有助于查明問題的代碼片段:
在啟動邏輯中配置身份驗證。(使用SaveTokens
)
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(
options =>
{
builder.Configuration.Bind("AzureAdB2C", options);
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.Scope.Add("https://xxx.onmicrosoft.com/api/action");
options.UseTokenLifetime = true;
options.SaveTokens = true;
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
}
,
options =>
{
options.Cookie.SameSite = SameSiteMode.None;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.IsEssential = true;
}
);
從 HttpContext 訪問令牌
// Following variable is empty
var rToken = await _httpContextAccessor.HttpContext.GetTokenAsync("refresh_token");
// Following variable contain jwt token
var iToken = await _httpContextAccessor.HttpContext.GetTokenAsync("id_token");
任何想法,有人?
uj5u.com熱心網友回復:
更改ResponseType
為"code id_token token"
添加offline_access
到您的范圍
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527955.html
標籤:asp.net 核心西装外套blazor 服务器端天蓝色-b2c