我有一個web應用程序傳遞(我們稱之爲APP1),這是重定向用戶到另一個應用程序(APP2),它利用angular2。無記名令牌從app1傳遞到app2作爲路由參數,然後將其存儲在本地存儲器中,並跨越app2使用。起初,我添加了邏輯以將令牌保存在我的login.component中的app2上,但我注意到當用戶通過身份驗證時,我的登錄頁面閃爍了幾秒鐘。然後,我決定把我的邏輯移動到我的LoginGuard類,它實現CanActivate,看起來像這樣:角2存儲承載令牌作爲路由帕拉姆最佳實踐
canActivate(route:ActivatedRouteSnapshot, state:RouterStateSnapshot) {
var myToken = route.queryParams['app1Token'] || '';
if (myToken !== "") {
localStorage.setItem('app2Token', myToken)
}
if (!localStorage.getItem('app2Token')) {
// not logged in so return true
return true;
}
this.router.navigate(['/home']);
return false;
}
我的問題是,什麼是最好的做法,當談到在頁面加載之前存儲的令牌?我一直在搜索,我已經看到,canActivate應該只用於'決定是否可以激活路線'。我還讀了Resolve,但我注意到這是用來獲取數據並在組件加載之前使其可用。