gpt4 book ai didi

javascript - 在没有 authguard 的情况下禁用 Angular 7 中的 url 更改导航或直接页面访问?

转载 作者:行者123 更新时间:2023-12-02 21:56:51 25 4
gpt4 key购买 nike

嗨,我正在寻找一种方法或建议,如果用户更改 url 来访问不同的页面,如下所示 enter image description here

它将限制用户和用户重定向到同一页面,是否有任何方法可以在不使用 Authguard 或不使用任何模块的情况下执行?

我的 stackblitz 项目不起作用

Here

最佳答案

当用户手动更改其网址时,您的应用程序将被卸载并再次加载。您可以使用 javascript 进行一些修改,例如在卸载时写入 url,然后在加载时将其返回

window.addEventListener('beforeunload', function(e) {
localStorage.setItem("appUnloading", JSON.stringify({time: Date.now(), url: location.pathname}));
};
.....
export class GuardForAllRoutes {
constructor(private router: Router) {}
canActivate() {
const appUnloadingState = localStorage.getItem("appUnloading");
let time, url;
if(appUnloadingState) {
{time, url} = JSON.parse(appUnloadingState);
}
if(Date.now() - time < 10000) { //let say your page will be loaded for no more that 10 seconds
return this.router.parse(url); // this won't work on old angular versions. use router.navigate instead
}

}
}

关于javascript - 在没有 authguard 的情况下禁用 Angular 7 中的 url 更改导航或直接页面访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59982123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com