gpt4 book ai didi

asp.net-core - 使用IdentityServer4的Swagger UI授权返回无效的redirect_uri

转载 作者:行者123 更新时间:2023-12-01 22:56:57 25 4
gpt4 key购买 nike

我正在使用 IdentityServer 使用 Swashbuckle 进行 Swagger 授权。我按照以下步骤操作:https://www.scottbrady91.com/Identity-Server/ASPNET-Core-Swagger-UI-Authorization-using-IdentityServer4 .

这是来自 IdentityServer 的日志记录:

2019-01-17 19:17:41.031 +01:00 [ERR] Invalid redirect_uri: 
http://localhost:3200/oauth2-redirect.html
{
"ClientId": "demo_api_swagger",
"ClientName": "Swagger UI for API",
"AllowedRedirectUris": [
"http://localhost:5001/oauth2-redirect.html"
],
"SubjectId": "anonymous",
"RequestedScopes": "",
"Raw": {
"response_type": "token",
"client_id": "demo_api_swagger",
"redirect_uri": "http://localhost:3200/oauth2-redirect.html",
"scope": "api_data openid profile",
"state": "VGh1IEph etc.."
}
}

日志记录显示:

Invalid redirect_uri: http://localhost:3200/oauth2-redirect.html

但我没有在任何地方设置这个地址,也不知道它来自哪里。如何设置正确的重定向地址?

最佳答案

端口 3200 的重定向地址被硬编码到 Swagger UI 中。

幸运的是,有一个简单的解决方法:将 key oauth2RedirectUrl 添加到 Swagger 初始化中。

Swaggerinit.js(添加到wwwroot/assets文件夹中):

function createSwaggerUi() {
var full = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');

const ui = SwaggerUIBundle({
url: full + "/swagger/v2/swagger.json",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",

oauth2RedirectUrl: full + "/oauth2-redirect.html"
})

window.ui = ui;
}

window.addEventListener("load", function () {
createSwaggerUi();
});

启动.cs:

app.UseSwaggerUI(options =>
{
options.RoutePrefix = string.Empty;

...

options.InjectJavascript("../assets/swaggerinit.js");
});

这适用于 Swashbuckle.AspNetCore.SwaggerUI,版本=4.0.1.0。

关于asp.net-core - 使用IdentityServer4的Swagger UI授权返回无效的redirect_uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54242118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com