このような angular-auth-oidc-client authorize メソッドにカスタム パラメータを追加したいと思います。この場合のカスタム パラメータで client_id を使用して、カスタム ロジックを記述します。
export class LoginComponent implements OnInit {
constructor(private oidcSecurityService: OidcSecurityService) {
}
ngOnInit() {
this.oidcSecurityService.authorize({customParams: { 'client_id': 'F93C5C9E-57DC-4889-86DD-66A98EAD94CC' } });
}
}
バックエンドでは、.net core 3.1 アプリケーションで identityserver4 をセットアップしました。カスタムProfileServiceも実装しました
public class ProfileService : IProfileService
{
protected UserManager<ApplicationUser> _userManager;
public ProfileService(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
//>Processing
var user = await _userManager.GetUserAsync(context.Subject);
var claims = new List<Claim>
{
new Claim("FullName", user.FullName),
};
context.IssuedClaims.AddRange(claims);
}
public async Task IsActiveAsync(IsActiveContext context)
{
//>Processing
var user = await _userManager.GetUserAsync(context.Subject);
context.IsActive = (user != null) && user.IsActive;
}
}
また、startup.cs に
services.AddIdentityServer()
.AddProfileService<ProfileService>();
.net コア アプリケーションで angular oidc クライアントから送信されたカスタム パラメータにアクセスするにはどうすればよいですか?
追加情報が必要な場合はお知らせください。