[英]Implement Angular guard on password reset route
我在试图弄清楚当用户尝试在 URL 中手动输入时如何验证密码重置路由时遇到了问题。 正确的功能是用户将走忘记密码的路线,然后从那里向他们发送电子邮件; 电子邮件将包含指向密码重置路由的 URL,并将包含令牌。 我低效的解决方法是为密码重置路由创建一个特定的保护,我正在验证令牌是否作为查询参数在 URL 中传递; 这是代码:
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
if (Object.keys(next.queryParams).includes('token')) {
return true;
}
this.router.navigate(['/login']);
return false;
}
如您所见,此代码有一个不便之处:如果用户在 URL 中写入令牌,它将允许他们进入路由。
有没有办法检测导航是否来自电子邮件并基于此进行验证? 提前致谢。
我们过去这样做的方法之一是 -编辑我的评论
这会清楚地回答你的问题吗
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.