目前,我正在尝试检测浏览器刷新事件(使用 F5),然后重新初始化页面状态一次。我只是检查了路由器事件,即如果第一个事件类型是 NavigationStart 并且事件 id 是 1,我认为用户按下了浏览器刷新 F5 按钮。
示例代码如下所示。然而,看起来很奇怪。有没有更好的方法来归档相同的目标?或任何建议?谢谢
export class AppComponent implements OnInit{
constructor(private router: Router) {
this.router.events.pairwise().subscribe((events: any[]) => {
if (events[0] instanceof NavigationStart
&& events[0].id === 1 && events[1].id === 1) {
// re-initialize page sate . . .
}
});
Run Code Online (Sandbox Code Playgroud)
}
我在Identity Server 4 中使用angular-oauth2-oidc。
用户需要通过 OpenId Connect 隐式流登录。我的 ID 和访问令牌存储在 Web 浏览器 localStorage 中。
当用户打开多个浏览器选项卡,然后用户从其中一个选项卡注销时,我应该如何处理其余的选项卡?
我试图捕捉 session_terminate 事件,他们试图将用户注销。但是,它不会将用户重定向回登录页面。
this.oauthService.events.filter(e => e.type ==='session_terminated')
.subscribe(e => {this.oauthService.logout();})
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢
我们使用 ZAP 2.8 扫描使用 IdentityServer4(隐式流)实现的 Angular Web 应用程序。
它生成了通配符指令警报(如下所示),我不确定这是否是安全问题。
如果是安全问题,我们该怎么办?OpenID Connect 会话管理端点不是我们应用程序的一部分,它是 IdentityServer4 内置功能。有什么建议么?谢谢
中(中)CSP 扫描仪:通配符指令说明以下指令要么允许通配符源(或祖先),要么未定义,要么定义过于广泛:frame-ancestor
网址https://server103.abc.com:54231/services.identity/connect/checksession
方法获取
参数内容-安全-策略
证据default-src 'none'; 脚本-src 'sha256-ZT3q7lL9GXNGhPTB1Vvrvds2xw/kOV0zoeok2tiV23I='