C# Cognito-未为OAuth2.0流启用客户端
我已经成功地设置了一个在Localhost上运行的AWS Cognito环境 下一步,我将应用程序发布到我的外部web服务器。我确认Cognito配置(即客户端ID、元数据地址、区域等)是正确的。但是,当我访问并尝试登录新发布的公共站点时,我收到以下错误:“客户端未为OAuth2.0流启用。” 编辑: 以下是我的应用程序客户端设置C# Cognito-未为OAuth2.0流启用客户端,c#,amazon-web-services,http,reverse-proxy,amazon-cognito,C#,Amazon Web Services,Http,Reverse Proxy,Amazon Cognito,我已经成功地设置了一个在Localhost上运行的AWS Cognito环境 下一步,我将应用程序发布到我的外部web服务器。我确认Cognito配置(即客户端ID、元数据地址、区域等)是正确的。但是,当我访问并尝试登录新发布的公共站点时,我收到以下错误:“客户端未为OAuth2.0流启用。” 编辑: 以下是我的应用程序客户端设置 我想在AWS Cognito配置或服务器配置设置中获得一些帮助。服务器未使用负载平衡器。我相信这个问题可能存在于反向代理或HTTPS设置中。我以前见过这个问题。当
我想在AWS Cognito配置或服务器配置设置中获得一些帮助。服务器未使用负载平衡器。我相信这个问题可能存在于反向代理或HTTPS设置中。我以前见过这个问题。当向Cognito发出请求时,请仔细查看您指定的重定向URL/回调URL。如果我没记错的话,如果重定向URL中有一个尾随的“/”或缺少的“/”,我会看到这个问题,具体取决于您在应用程序客户端设置中指定的内容。这个问题不是cognito问题,而是IIS和HTTPs问题。如果您计划使用此AWS服务,请确保您的服务器完全为HTTPS。如果您使用Cloudformation或AWS SAM设置Cognito,但忘记将属性设置为true,则也会出现这种情况
资源:
FooBarUserPoolClient:
类型:AWS::Cognito::UserPoolClient
特性:
AllowedOAuthFlowsUserPoolClient:True#在此处设置
TLDR:
除了前面的答案外,请确保您的回拨URL为小写。
长答覆:
我遇到了同样的错误。在我的例子中,我已经从负载平衡器页面的描述窗口复制了我的应用程序负载平衡器的DNS名称,在该窗口中有不同的大小写
因此,我将以下内容放入回调URL中,并遇到了相关错误:
https://*AppLBTest*-123456123456.ap-southeast-1.elb.amazonaws.com/oauth2/idpresponse
将回调URL更改为以下内容后,auth按预期工作:
https://*applbtest*-123456123456.ap-southeast-1.elb.amazonaws.com/oauth2/idpresponse
你能提供你的AWS Cognito应用程序客户端设置吗?这是因为@JonEI有同样的问题,这是因为我在回调url上使用了大写字母。我只是用所有小写字母来修复它。对我来说就是这样,一个额外的“/”。。。谢谢我必须在我的应用程序客户端设置中的回调/注销URL中添加一个尾随“/”!我还必须在回调URL中添加一个尾随“/”。这就是它所需要的。这太荒谬了。但它解决了我的问题。谢谢