一则示例
import { KeycloakService } from 'keycloak-angular';
export function initializer(keycloak: KeycloakService): () => Promise<any> {
return (): Promise<any> => {
return new Promise(async (resolve, reject) => {
try {
await keycloak.init(
{
config: {
url: 'http://10.110.20.19/auth',
realm: 'iottest',
clientId: 'iot-web'
},
initOptions: {
onLoad: 'login-required',
checkLoginIframe: false
},
bearerExcludedUrls: [
'/assets',
'/clients/public'
],
}
);
console.log("aa");
await keycloak.getToken().then(res => {
document.cookie = "iotToken=" + res;
console.log("bb");
});
console.log("cc");
resolve();
} catch (error) {
reject(error);
}
});
};
}
控制台输出结果:
aa
bb
cc
将代码稍作修改(将keycloak.getToken()前的await修饰符去掉)
import { KeycloakService } from 'keycloak-angular';
export function initializer(keycloak: KeycloakService): () => Promise<any> {
return (): Promise<any> => {
return new Promise(async (resolve, reject) => {
try {
await keycloak.init(
{
config: {
url: 'http://10.110.20.19/auth',
realm: 'iottest',
clientId: 'iot-web'
},
initOptions: {
onLoad: 'login-required',
checkLoginIframe: false
},
bearerExcludedUrls: [
'/assets',
'/clients/public'
],
}
);
console.log("aa");
//await
keycloak.getToken().then(res => {
document.cookie = "iotToken=" + res;
console.log("bb");
});
console.log("cc");
resolve();
} catch (error) {
reject(error);
}
});
};
}
控制台输出结果:
aa
cc
bb