Я пытаюсь изменить этот 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');
});
}
});
}