【发布时间】:2019-01-13 16:28:18
【问题描述】:
我正在使用 openIdDict 的示例 MVC 应用程序来实现授权代码流。但是,我有一个 Angular 6 应用程序,用于用户用于授权请求的登录页面。我已经让所有有角度的东西都在工作,但是当我提交我的“连接/授权”请求时,它正在生成一个 302。302 被浏览器捕获并且正在发生重定向,但我不希望那样。我希望请求以 200 的形式出现,然后角度应用程序可以从那里控制重定向。
我想这样做的原因: 1. 我正在集成的系统需要在重定向中填充额外的查询字符串参数(状态 * 其他)。我希望我的 Angular 应用程序填充这些而不是连接/授权。 2. Angular 应用程序将在用户允许授权后但在重定向发生之前向用户提供额外的说明/信息。
我的问题是这样的: 1、openiddict生成的响应码可以改吗? 2. 我是不是偏离了轨道,让这件事变得比应该做的更难?
Startup.cs 配置
services.AddOpenIddict()
.AddCore(coreOptions =>
{
coreOptions.UseEntityFrameworkCore().UseDbContext<ApplicationDbContext>();
})
.AddServer(serverOptions =>
{
serverOptions.UseMvc();
serverOptions.EnableAuthorizationEndpoint(oauthOptions.AuthorizePath)
.EnableTokenEndpoint(oauthOptions.TokenPath)
.EnableLogoutEndpoint(oauthOptions.LogoutPath);
serverOptions.AllowAuthorizationCodeFlow()
.AllowPasswordFlow()
.AllowRefreshTokenFlow();
serverOptions.SetAccessTokenLifetime(new TimeSpan(0, oauthOptions.AccessTokenLifetimeMinutes, 0));
serverOptions.SetRefreshTokenLifetime(new TimeSpan(0, oauthOptions.RefreshTokenLifetimeMinutes, 0));
if (!oauthOptions.RequireSSL)
{
serverOptions.DisableHttpsRequirement();
}
});
【问题讨论】: