###前提・実現したいこと
CanActivateを使用してSessionにログイン情報がない場合にログイン画面へ移行する。
ログイン画面のUrlは localhost:4200/login
ログイン後の画面のUrlは localhost:4200/main/xxx (main下に子が複数ある)
/main にCanActivateを指定しsessionStorageにlogin情報の有無を確認するような感じにしている。
appModuleのRouterで指定されていないUrlへアクセスした場合はすべて/loginへリダイレクトするようにしています。
typescript
1{path '**', redirectTo: '/login' }
###発生している問題・エラーメッセージ
/main以下の特定のページでsessionStorage.clear()を呼び意図的にsessionを破棄して意図した動作になるか検証を行ったところ以下の問題が発生しました。
・localhost:4200/mainにアクセス不可の為、localhost:4200へ飛ばされるがリダイレクトせず真っ白の画面になってしまう。
その画面でリロードをするとリダイレクトされログイン画面に戻るという動作になってしまう。
###試したこと
canActivate()がfalseの場合、localhost:4200へ飛ばされるのでlogin画面のUrlを指定なしにしてみましたがなぜか表示されるのは真っ白のページでした。
真っ白のページでリロードすると同じUrlなのにログインページが表示されました。
Typescript
1{ path '', component: LoginComponent }
あまり具体的なコードを載せることができないのですがお分かりになる方がいればご教示おねがいいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。