我正在尝试将自定义参数传递给从 angular oidc-client 登录页面 IdentityServer 4 中使用的 returnURL。
根据我从 returnURL 收到的参数,我想绕过登录网站并将它们重定向到 IDP。我打算从角度将参数添加到特定页面,然后我想从那里重定向到登录。
下面的链接讨论了它们,但我无法关注它们。你们能帮忙吗。提前致谢。
将自定义参数传递给登录页面 Identity Server 4 中使用的 returnUrl
https://github.com/IdentityServer/IdentityServer4/issues/909
C# AccountController.cs
public async Task<IActionResult> Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
var vm = await _account.BuildLoginViewModelAsync(returnUrl);
if (vm.IsExternalLoginOnly)
return ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme, returnUrl);
return View(vm);
}
角 auth.service.ts
const settings: any = {
authority: environment.oauthUrl,
client_id: 'website',
redirect_uri: `${environment.applicationUrl}/auth.html`,
post_logout_redirect_uri: `${environment.applicationUrl}`,
response_type: 'id_token token',
scope: 'openid profile email profile nucleus',
silent_redirect_uri: `${environment.applicationUrl}/silent-renew.html`,
automaticSilentRenew: true,
monitorSession: true,
checkSessionInterval: 2000,
revokeAccessTokenOnSignout: true,
filterProtocolClaims: true,
loadUserInfo: true,
changePasswordUrl: `${environment.oauthUrl}/Manage/ChangePassword?returnUrl=${environment.applicationUrl}`
};
我希望 returnurl 有一个参数,并在 AccountController.cs 的 Login 方法中添加这样的条件。
if (vm.IsExternalLoginOnly || returnUrl.Contains("customparameter"))