问题描述
我正在尝试将ASP.NET Core 3.1 Web应用程序与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/
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显示:
我仔细检查了两次客户ID,URL中的客户ID与Yahoo App的个人资料中的ID相同。我现在想知道,在注册应用程序时我错过了一个额外的步骤,还是我的代码有问题?
编辑:已取得进展!客户端ID后的破折号必须是示例的一部分,否则是错误的。删除该错误后,我开始收到一个新错误,要求输入有效的请求。这与我的返回网址有关,因为用'oob'替换它使它可以通过。
解决方法
所以有两个错误。首先是不应在客户端ID后加上“-”。我不确定为什么在雅虎的例子中它们在那里存在,但是并不需要它们。第二个原因是我的返回uri在我的代码中大写,但在我的应用程序设置中未大写。现在可以了!