点击Balosar项目(wasm+openiddict)登录报错 如何配置启用CORS?
Balosar项目CORS配置方案
配置位置
所有CORS配置都在*Balosar.Server项目(OpenIddict服务端)*的Program.cs文件中完成,无需修改客户端代码。
具体配置步骤
- 注册CORS服务:在
var builder = WebApplication.CreateBuilder(args);之后、添加身份认证服务之前,添加如下代码:
builder.Services.AddCors(options => { options.AddPolicy("AllowBlazorClient", policy => { // 填入你客户端实际的访问地址,不要加末尾斜杠 policy.WithOrigins("https://localhost:44310") .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); }); });
- 启用CORS中间件:中间件顺序必须放在
app.UseRouting()之后、app.UseAuthentication()和app.UseAuthorization()之前,添加如下代码:
app.UseCors("AllowBlazorClient");
- 配置OpenIddict允许跨域请求:在服务端原有注册OpenIddict服务的代码块中,新增允许CORS的配置:
builder.Services.AddOpenIddict() .AddServer(options => { // 保留原有所有OpenIddict配置不变,新增下面一行 options.AllowCors(); });
注意:不要为了简化配置使用
AllowAnyOrigin()开启全来源跨域,搭配AllowCredentials()时会触发浏览器跨域校验失败,必须明确指定客户端的访问地址。
配置完成后重启服务端,再触发客户端登录操作即可正常请求OpenID配置端点。
内容的提问来源于stack exchange,提问作者tschmit
相关产品推荐
相关产品推荐

