我正在将我的 asp.net core 6 Web 应用程序与 Okta 集成。我遵循了他们提供的所有说明,但是,当我尝试登录时收到 CORS 错误。
程序.cs
builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.LoginPath = new PathString("/Account/SignIn");
})
.AddOktaMvc(new OktaMvcOptions
{
// Replace these values with your Okta configuration
OktaDomain = builder.Configuration.GetValue<string>("Okta:OktaDomain"),
ClientId = builder.Configuration.GetValue<string>("Okta:ClientId"),
ClientSecret = builder.Configuration.GetValue<string>("Okta:ClientSecret"),
AuthorizationServerId = builder.Configuration.GetValue<string>
("Okta:AuthorizationServerId"),
Scope = new List<string> { "openid", "profile", "email" }
});
var app = builder.Build();
app.UseCors();
应用程序设置.json
"Okta": {
"OktaDomain": "https://dev-09370932.okta.com",
"ClientId": "0oaaemqhom1hhOGpr5d7",
"ClientSecret": "gJwDgQWRqznfZMvidc_Nuv2gdBXtOEb6JxeKeVX8"
}
app.UseCors();
还不允许 cors。你可以试试
app.UseCors(builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
或
var OktaDomain = builder.Configuration.GetValue<string>("Okta:OktaDomain");
app.UseCors(builder => builder.WithOrigins(OktaDomain)
.AllowAnyMethod()
.AllowAnyHeader());