我使用查询参数导航到应用程序中的某个页面。
从 URL 获取参数后,我想将其删除,理想情况下我会这样:
let userToken: string;
this.sub = this.router
.routerState
.queryParams
.subscribe(params => {
userToken = params['token'];
params['token'].remove();
});
但显然删除功能不存在。有人有替代方案吗?
以防万一人们发现这个线程(就像我一样)。我有一个场景,我在查询字符串中收到 JWT 令牌(/login?jwt=token
)。我需要获取此令牌(并存储它等),但随后需要确保它已从 URL 中安全删除。重新加载登录路由(通过使用this.router.navigate(['login']
)在原则上有效,但是,用户可以使用浏览器后退按钮,基本上重播令牌登录。
我通过不使用导航而是通过 DI'ing 'Location' 服务(来自@angular/common
)。这项服务有一个replaceState
方法,该方法从历史记录和 URL 中完全删除令牌
this.location.replaceState('login')
希望对某人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)