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