我在 Angular 2 网页中使用身份服务器 4 和 oidc-client 库。登录、注销调用和 api 调用都正常工作,没有任何问题。我最近开始尝试让令牌自动刷新功能也可以在网页中使用。我看到在静默重定向中定义的网页正在 iFrame 中创建,我看到对 id4 服务的调用,但总是在 iframe 上收到超时错误并且没有收到新令牌。任何有关我遗漏或做错的帮助或建议将不胜感激。我在下面包含了相关的客户端代码。我确实看到触发了令牌到期事件。提前非常感谢。
angular2服务
import { UserManager, Log, MetadataService, User, WebStorageStateStore } from 'oidc-client';
export const settings: any = {
authority: 'http://10.3.30.215:8885',
client_id: 'tps',
redirect_uri: 'http://10.3.30.215:4201/auth.html',
response_type: 'id_token token',
automaticSilentRenew: true,
monitorSession: true,
scope: 'openid scope1 scope2 offline_access',
post_logout_redirect_uri: 'http://10.3.30.215:4201',
silent_redirect_uri: 'http://10.3.30.215:4201/silent_renew.html',
loadUserInfo: true
};
public mgr: UserManager = new UserManager(settings);
constructor(private http: Http) {
Log.logger = console;
Log.level = Log.DEBUG;
}
login() {
this.mgr.clearStaleState().then(() => {
this.mgr.signinRedirect();
});
}
silent_renew.html:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script src="oidc-client.js"></script>
<script>
new Oidc.UserManager().signinSilentCallback();
</script>
</body>
</html>