我正试图修改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');
});
}
});
}