为什么我在OAuth 2. 0认证中收到“invalid redirect_url”错误消息?

unguejic  于 2022-11-28  发布在  其他
关注(0)|答案(3)|浏览(907)

当我从一个公司的api中获取访问令牌时,我得到了“invalid redirect_url”错误消息。我在公司的api中设置了这个redirect_url。我还用swagger测试了这个url和方法。Url是正确的。
我的access_token要求如下:

string serviceUrl = $"https://apis.blabla.com/auth/oauth/v2/token?client_id={apiKey}&client_secret={apiSecret}&grant_type=client_credentials&redirect_uri={redirectUri}";

我的重定向网址是公开的,如下所示:

string redirectUri = "http://asd.zxc.com:1234/Api/GenerateToken/GenerateAccessToken"

GenerateToken是控制器,GenerateAccessToken是方法名称。方法类型是Post(如文档所需)。请求模型与文档中的相同。问题可能是什么?

-编辑

GenerateAccessToken方法可以是Void吗?我必须从redirect_url返回一些东西吗?

oipij1gg

oipij1gg1#

我会仔细检查您的/oauth请求URL中的redirect_uri是否与您的OAuth配置/公司设置中引用的URL * 完全 * 匹配。即使是最小的差异,如http与https或包括wwww.等,也会引发错误。您可能会在此OAuth Troubleshooting Guide中找到一些提示,Miro也为检查其他常见的OAuth错误提供了帮助!
该指南中的第一项介绍了invalid redirect错误。

w9apscun

w9apscun2#

查看日志文件,可能会有线索。在Program.cs中打开日志记录。注意,当使用调试级别或信息级别时,日志文件可能会变得很大。

public static void Main(string[] args)
{
    Console.Title = "IdentityServer";

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
        .MinimumLevel.Override("System", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
        .Enrich.FromLogContext()
        .WriteTo.File("logs\\my-identity-server.txt", rollingInterval: RollingInterval.Day)
        .CreateLogger();

    BuildWebHost(args).Run();
}
js81xvg6

js81xvg63#

我解决了这个问题。我的方法在重定向网址采取一个请求模型。我创建了一个模型,如在文档中。我改变了这个方法。我采取请求作为对象类型,并返回相同的模型在重定向网址。然后这个错误解决。

相关问题