Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 网络组装';s IAAuthenticationTokenProvider在请求令牌时崩溃_Asp.net Core_Blazor Webassembly - Fatal编程技术网

Asp.net core 网络组装';s IAAuthenticationTokenProvider在请求令牌时崩溃

Asp.net core 网络组装';s IAAuthenticationTokenProvider在请求令牌时崩溃,asp.net-core,blazor-webassembly,Asp.net Core,Blazor Webassembly,我正在尝试使用谷歌的OIDC对我的WASM Blazor应用程序中的用户进行身份验证。 我已通过本文检索到令牌: 我正在尝试检索AccessToken,以便在构建HubConnection实例时,使用注入的IAccessTokenProvider实例将其传递给信号器集线器: 公共RemoteCombatListener(iTokeCache令牌缓存) { _连接=新的HubConnectionBuilder() .WithUrl(“https://localhost:44364/combat“,

我正在尝试使用谷歌的OIDC对我的WASM Blazor应用程序中的用户进行身份验证。 我已通过本文检索到令牌:

我正在尝试检索AccessToken,以便在构建HubConnection实例时,使用注入的
IAccessTokenProvider
实例将其传递给信号器集线器:

公共RemoteCombatListener(iTokeCache令牌缓存) { _连接=新的HubConnectionBuilder() .WithUrl(“https://localhost:44364/combat“,选项=>{ opts.AccessTokenProvider=tokenCache.GetToken; }) .Build(); } 以下是my TokenCache的实现:

公共类令牌缓存:ITokenCache
{
专用只读IAccessTokenProvider\u tokenProvider;
专用只读导航管理器_navManager;
公共字符串CachedToken{get;private set;}
公共令牌缓存(IAccessTokenProvider令牌提供程序,NavigationManager navManager)
{
_令牌提供者=令牌提供者;
_navManager=navManager;
}
公共异步任务GetToken()
{
if(string.IsNullOrEmpty(CachedToken))
{
var requestedToken=await_tokenProvider.RequestAccessToken();
if(requestedToken.TryGetToken(out var accessToken))
{
CachedToken=accessToken.Value;
}
其他的
{
抛出新的AccessTokenNotAvailableException(_navManager,requestedToken,Enumerable.Empty());
}
}
返回CachedToken;
}
}
我现在面临的问题是,在调用
\u tokenProvider.RequestAccessToken()
方法时,我遇到以下异常:

An exception occurred executing JS interop: The JSON value could not be converted to System.DateTimeOffset. Path: $.token.expires | LineNumber: 0 | BytePositionInLine: 80.. See InnerException for more details.

我无法找出我的设置有什么问题,因为调试随机停止,我唯一的选择是Console.Log调试。

结果是,Oidc的默认配置没有请求访问令牌,只有id令牌。必须添加以下内容:

builder.Services.AddOidcAuthentication(选项=>{
//其余的配置。。。
options.ProviderOptions.ResponseType=“id\u令牌”;
});