【问题标题】:How to use IdentityServerClientCorsOrigins? (ABP.IO)如何使用 IdentityServerClientCorsOrigins? (ABP.IO)
【发布时间】:2020-10-13 20:46:10
【问题描述】:

目前,cors 来源是在 appsettings 中配置的,但是我无法配置它从 SQL Server 数据库获取来源的方式。

我已经注释掉了 withOrigins 部分,但是我已经在数据库中配置了它,但它被拒绝了

这是我从 http://localhost:3000 调用时遇到的错误

CORS 策略已阻止从源“http://localhost:3000”访问“https://ids.local/connect/userinfo”处的 XMLHttpRequest:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

【问题讨论】:

    标签: identityserver4 abp


    【解决方案1】:

    在 IdentityServer 项目中应用这些:

    1. AllowedCorsOrigins 添加到Config.cs 或数据库中的客户端配置(如果使用EF)
    AllowedCorsOrigins =
                            { 
                                "http://localhost:3000" 
                            },
    

    在配置 CORS 时,请务必使用来源(而不是 URL)。例如:https://foo:123/ 是一个 URL,而 https://foo:123 是一个来源。

    参考:http://docs.identityserver.io/en/dev/topics/cors.html#client-based-cors-configuration

    1. 如果您有自定义 cors 策略,请将其添加到 startup.cs - ConfigureServices
    services.AddCors(options =>
                {
                    options.AddPolicy("default", policy =>
                    {
                            .AllowAnyHeader()
                            .AllowAnyMethod()
                            .AllowCredentials();
                    });
                });
    
    1. startup.cs - Configure 上,在 IdentityServer 之后添加 cors。
    app.UseIdentityServer();
    app.UseCors("default");
    

    IDS4 已经注册了一个自定义的 cors 策略,如果你也有一个,请确保在 IDS4 中间件之后添加它

    【讨论】:

    • 感谢您的回答,但是我想从 SQL Server 数据库中获取 CorsOrigins。我不想硬编码,不在 appsettings.json 中
    • 你对 DB 的价值是什么?
    • 更新了我的答案我想我知道你的问题,它的中间件订购原因
    • 令人困惑。如果我们使用 EF 使用 SQL Server 数据库,我只想要设置和配置。同样,我没有使用自定义 CORS,因此我想从 IdentityServer4 数据库表中检索任何配置
    • 您也不需要 usecors,只需将其删除,这是一个工作示例 github.com/nahidf/IdentityServer4-adventures/blob/…。我的示例中有一个 JS 客户端,只需在客户端配置上设置 cors 即可完全正常运行(我的示例在内存中,但对于 db 没有不同)
    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多