Openid connect 将Google登录添加到OpenIddict授权服务器-谁提供客户端id以及如何提供?
从OpenIddict开始,我想添加Google帐户作为登录提供者(nuget:Openid connect 将Google登录添加到OpenIddict授权服务器-谁提供客户端id以及如何提供?,openid-connect,openiddict,Openid Connect,Openiddict,从OpenIddict开始,我想添加Google帐户作为登录提供者(nuget:Microsoft.AspNetCore.Authentication.Google) 我的更改包括在AddOpenIddict(…)之后添加google身份验证提供程序: 将/signin google添加为有效授权端点以允许调用signin: options.SetAuthorizationEndpointUris("/connect/authorize", "/signin-goo
Microsoft.AspNetCore.Authentication.Google
)
我的更改包括在AddOpenIddict(…)
之后添加google身份验证提供程序:
将/signin google
添加为有效授权端点以允许调用signin:
options.SetAuthorizationEndpointUris("/connect/authorize", "/signin-google")
.SetLogoutEndpointUris("/connect/logout")
.SetIntrospectionEndpointUris("/connect/introspect")
.SetUserinfoEndpointUris("/connect/userinfo");
然而,当从google回来时,OpenIddict服务器总是抱怨客户端id丢失:
fail:OpenIddict.Server.OpenIddictServerDispatcher[0]由于缺少必需的“client\u id”参数,授权请求被拒绝。
已尝试了这些配置选项,但未做任何更改:
options.AcceptAnonymousClients();
options.Configure(op => op.AcceptAnonymousClients = true);
我做错了什么
可以找到完整的日志
(是的,我将端口更改为6001以重用在google注册的现有重定向url)
选项。AcceptionNonymousClient()
对代码流没有影响,因为在这种情况下,客户端id
是一个强制参数(它只影响令牌、内省和撤销端点)
options.signnscheme
不能设置为属于OpenIddict的方案。在大多数情况下,它必须对应于cookie处理程序(通常是通过标识注册的处理程序)
您还需要从OpenIddict管理的端点中删除/signin google
,因为这将阻止google身份验证处理程序正常工作
options.AcceptAnonymousClients();
options.Configure(op => op.AcceptAnonymousClients = true);