[英]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.