私はこのexample Angular2 applicationを現在のログインユーザを表示するように修正しようとしています。まず、KeycloakService.tokenParsed.preferred_username
から直接取得しようとしましたが、サンプルコードでそのまま使用することはできません。私の推測では、ユーザー名を別々に取得するためにKeycloakServiceに関数を追加する必要がありますが、これは最も単純なアプローチで、これについてどうやって行くのか分かりません。Keycloakで現在のユーザー名を取得するには?
ソリューション:@のuchihaitachiの提案に基づき、ここで私は私のKeycloakServiceに追加した加工方法があります:
getPreferredUserName(): Promise<string> {
return new Promise<string>((resolve, reject) => {
if (KeycloakService.auth.authz.token) {
KeycloakService.auth.authz.loadUserInfo().success((data) => {
resolve(<string>data.preferred_username);
}).error(() => {
reject('Failed to get preferred user name');
});
}
});
}