0

このような 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 クライアントから送信されたカスタム パラメータにアクセスするにはどうすればよいですか?

追加情報が必要な場合はお知らせください。

4

1 に答える 1