C# oauth2:“;userinfo endpoint中缺少子声明;Microsoft开放ID连接-OIDC客户端
我正在使用microsoftC# oauth2:“;userinfo endpoint中缺少子声明;Microsoft开放ID连接-OIDC客户端,c#,oauth-2.0,google-oauth,identitymodel,C#,Oauth 2.0,Google Oauth,Identitymodel,我正在使用microsoftOIDClientfor oauth2.0 for google帐户,我得到了 “userinfo终结点中缺少子声明”错误 有人能告诉我我是否遗漏了什么或做错了什么吗 public async Task Authorize () { InitializeComponent (); var providerInformation = new ProviderInformation { IssuerName = "acc
OIDClient
for oauth2.0 for google帐户,我得到了
“userinfo终结点中缺少子声明”错误
有人能告诉我我是否遗漏了什么或做错了什么吗
public async Task Authorize ()
{
InitializeComponent ();
var providerInformation = new ProviderInformation
{
IssuerName = "accounts.google.com",
AuthorizeEndpoint = "https://accounts.google.com/o/oauth2/auth",
TokenEndpoint = "https://oauth2.googleapis.com/token",
//UserInfoEndpoint = "https://openidconnect.googleapis.com/v1/userinfo",
UserInfoEndpoint = "https://www.googleapis.com/oauth2/v3/tokeninfo",
KeySet = new JsonWebKeySet()
};
var scope = "https://www.googleapis.com/auth/fitness.blood_glucose.read https://www.googleapis.com/auth/fitness.body.read https://www.googleapis.com/auth/fitness.activity.read https://www.googleapis.com/auth/fitness.blood_pressure.read"; https://www.googleapis.com/auth/fitness.blood_glucose.read https://www.googleapis.com/auth/fitness.body.read https://www.googleapis.com/auth/fitness.activity.read https://www.googleapis.com/auth/fitness.blood_pressure.read";
var options = new OidcClientOptions
{
Authority = "https://accounts.google.com/o/oauth2/auth",
ClientId = "xyz",
Scope = scope,
RedirectUri = "com.abc.xyzt:/oauthredirect",
Browser = browser,
ProviderInformation = providerInformation,
//ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect,
TokenClientCredentialStyle = IdentityModel.Client.ClientCredentialStyle.AuthorizationHeader
};
_client = new OidcClient(options);
await _client.LoginAsync(new LoginRequest());
}
我得到了6种不同类型的索赔,但我没有得到图书馆正在寻找的JwtClaimTypes.Subject
“sub”
。
有人可以帮助或建议如何解决此问题吗?我找到了解决方案。我提供了太多的信息。而不是让库根据服务发现端点来解决问题
public async Task Authorize ()
{
var discovery = new DiscoveryPolicy
{
ValidateEndpoints = false,
Authority = "https://accounts.google.com"
};
OidcClientOptions oidcClientOptions = new OidcClientOptions
{
Authority = "https://accounts.google.com",
ClientId = "2345678",
Scope = "https://www.googleapis.com/auth/fitness.body.read",
RedirectUri = "com.abc.xyz",
Browser = IoCRegistry.Locate<IBrowser>(),
ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect,
Policy = new Policy
{
Discovery = discovery,
RequireAccessTokenHash = false
}
};
var _client = new OidcClient(oidcClientOptions);
var result = await _client.LoginAsync(new LoginRequest());
}
公共异步任务授权()
{
var发现=新发现政策
{
ValidateEndpoints=false,
权威=”https://accounts.google.com"
};
OIDClientOptions OIDClientOptions=新的OIDClientOptions
{
权威=”https://accounts.google.com",
ClientId=“2345678”,
范围=”https://www.googleapis.com/auth/fitness.body.read",
RedirectUri=“com.abc.xyz”,
Browser=IoCRegistry.Locate(),
ResponseMode=OIDClientOptions.AuthorizeResponseMode.Redirect,
政策=新政策
{
发现=发现,
RequireAccessTokenHash=false
}
};
var_client=新的OIDClient(OIDClientions);
var result=wait_client.LoginAsync(new LoginRequest());
}