启用自定义登录页后ASP.NET MVC示例中Auth0 Gmail SSO无法正常工作
ASP.NET MVC集成Auth0谷歌登录无返回Token、跳转失败问题
问题现象
- 测试环境基于官方ASP.NET MVC示例开发,本地测试页如下图:

- 点击登录按钮后正常跳转至Auth0自定义登录页:

- 点击谷歌登录按钮,已完成Gmail账号登录后,系统未返回Token,也未发生预期跳转,当前停留页面URL如下:
https://ishkyteck.us.auth0.com/login?state=hKFo2SBJRWVZQ1F2dk1WeW91Ry1sdVh2SklnQWhVemZjdS1YcKFupWxvZ2luo3RpZNkgb1FGXzRoYjR5a2phTmU2dUNEMGFUcmk0YXN4a1dRYjmjY2lk2SBTbjdld3VBcWk4Y3JyWFVTcjQ2bkYxSEJHZmF2VGl0cg&client=Sn7ewuAqi8crrXUSr46nF1HBGfavTitr&protocol=oauth2&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2F&response_type=code%20id_token%20token&scope=openid%20profile&response_mode=form_post&nonce=637732441711041622.NjQ3MWUxZTYtMTM4Yy00OTQ1LWEyMzUtMTBmN2Y5NjQ5OWVkMzNjYjllMTItNTMwYi00NmIyLWIyMzEtNTY0MjQzNDk1ODll&audience=https%3A%2F%2Fishkyteck.us.auth0.com%2Fapi%2Fv2%2F&x-client-SKU=ID_NET461&x-client-ver=6.7.1.0 - 跳转异常页面截图:

- 后台
AuthorizationCodeReceived方法正常触发,但未携带任何Token参数:
- 该问题仅在开启Auth0通用自定义登录页开关后出现,默认登录页下谷歌登录功能正常:

解决步骤
- 检查Auth0后台Social连接配置,确认谷歌连接已开启「显示在自定义登录页」选项,同时确认谷歌开发者控制台的OAuth授权重定向URI已添加
https://ishkyteck.us.auth0.com/login/callback - 检查Auth0应用的
Allowed Callback URLs配置,确认已添加本地测试地址http://localhost:3000/,注意末尾斜杠必须和请求参数里的redirect_uri完全匹配 - 检查Startup.Auth.cs配置中的响应类型设置,确认和Auth0端配置一致,若使用form_post响应模式,需确认自定义登录页的提交逻辑没有拦截POST请求的参数传递
- 检查自定义登录页代码是否存在逻辑错误,可先切换到Auth0提供的默认自定义登录页模板测试,排除自定义代码导致的参数丢失问题
- 检查Auth0应用设置的「Token Endpoint Authentication Method」是否设置为
Post,和OWIN中间件的配置保持一致 - 若以上配置均正常,可在Auth0 Dashboard的Monitoring->Logs里查看对应登录请求的错误日志,可直接定位是权限配置、回调地址不匹配还是连接配置问题
内容的提问来源于stack exchange,提问作者rajesh sathish
相关产品推荐
相关产品推荐

