调用Yahoo OIDC request_auth端点遇“uh oh”错误,无法完成登录
看起来你在集成Yahoo OIDC登录时碰到了这个棘手的错误提示——没看到授权界面也没触发重定向,确实让人困惑。咱们从几个常见的关键点来排查:
核对Client ID与Redirect URI的精准匹配
Yahoo对重定向URI的匹配要求非常严格,哪怕是大小写、端口号、末尾斜杠的差异都会导致失败。先去你的Yahoo开发者控制台,确认配置的redirect_uri和请求里的https://myhostname.com:9444/oidcclient/redirect/RP完全一致,包括https协议不能写成http。另外检查Client ID是否完整复制,有没有漏字符或者多余空格。验证Scope参数的合规性
你用的scope=openid是OIDC的必填项,但可以先确认参数格式没问题(没有特殊字符或空格)。如果没问题,试试在scope里加上profile或email(前提是这些权限已经在开发者控制台里启用),有些提供商需要额外的基础权限才能正常触发授权流程。测试State参数的简化版本
虽然OIDC规范对state参数格式没有强制约束,但有些提供商对特殊字符或长度有隐性限制。你当前的state=001520551248694Xjr6KF2IV可以换成更简单的随机字符串(比如test_state_123),看看是不是这个参数导致的流程中断。确认HTTPS证书的有效性
你的重定向URI是HTTPS协议,Yahoo会验证这个域名的SSL证书是否受信任。如果是自签名证书,Yahoo会直接拒绝,导致流程卡住。确保你的证书由正规CA颁发,且域名与证书的CN/SAN字段完全匹配。检查Yahoo应用的状态与权限
登录Yahoo开发者后台,确认你的应用状态是“已激活”,而非草稿或禁用状态。另外,如果应用还未完成审核,可能会限制授权流程(比如只能用测试账号登录),可以先尝试用应用关联的测试账号进行登录测试。构造最小化请求直接测试
把请求简化到最基础的参数,直接在浏览器地址栏访问:https://api.login.yahoo.com/oauth2/request_auth?response_type=code&client_id=你的真实ClientID&state=test123&redirect_uri=控制台配置的准确URI&scope=openid这种方式可能会显示更详细的错误信息,帮助定位问题(有时候通过RP重定向会隐藏具体错误)。
内容的提问来源于stack exchange,提问作者Barbara Jensen

