雅虎 OAuth 无效的客户端 ID

Yahoo OAuth Invalid Client ID

我正在尝试将我的 ASP.NET Core 3.1 网络应用程序与 Yahoo 连接。为此,我必须使用 OAuth 设置授权。我遵循了一些不同的指南,包括:

https://developer.yahoo.com/oauth2/guide/openid_connect/getting_started.html

https://www.yogihosting.com/implementing-yahoo-oauth-2-0-in-csharp-and-asp-net/

我已经在 Yahoo 中设置了我的应用程序,配置如下图所示:

然后我将我的代码设置为使用以下代码向 Yahoo 发送授权请求:

public void YahooAuth()
    {
        string id = configuration["YahooClientId"];
        string returnUrl = "https://www.fantasysimmer.com/FootballSimulator/Sim";
        string url = $"https://api.login.yahoo.com/oauth2/request_auth?client_id={id}--&response_type=code&redirect_uri={returnUrl}";
        Response.Redirect(url);

    }

然而,当此代码为 运行 时,我收到一个错误页面,其中包含一条消息“开发人员:请指定一个有效的客户端并再次提交。”,并且 URL 显示:

https://api.login.yahoo.com/oauth2/error?client_id={Client_ID}--&error=unauthorized_client&error_description=invalid+client+id

我仔细检查了客户端 ID,URL 中的客户端 ID 与我的 Yahoo App 配置文件中的相同。我现在想知道,我在注册我的应用程序时是否错过了额外的步骤,或者我的代码有问题吗?

编辑:取得进展!客户端 id 后面的破折号必须是示例的一部分,否则就是错误。当我删除它时,我开始收到一个新错误,提示我输入一个有效请求。它与我的 return url 有关,因为将其替换为 'oob' 使其通过。

所以有两个错误。首先是客户 ID 后面的“--”不应该存在。我不确定为什么在雅虎的例子中他们有它们,但不需要它们。第二个原因是我的 return uri 在我的代码中大写,但在我的应用程序设置中没有大写。现在可以使用了!