2017-07-12 6 views
0

角度2のアプリケーションにはJavaスプリングブートバックエンドがあります。春のバックエンドでは、YAML設定ファイルに1時間のセッションタイムアウトを設定しています(テスト目的のため、1分に変更しました)。セッションがタイムアウトすると、トークンは長時間認証されず、ユーザはアプリケーションを再開/開始するために再度ログインする必要があります。角度2/Javaスプリングブートでセッションタイムアウトを処理する方法

セッションがタイムアウトすると、角度アプリはユーザーをログインページにリダイレクトする必要があります。これは、ユーザーのアクティビティ/アイドル状態に関係なく実行する必要があります。

私が執着しているのは、セッションがタイムアウトすると、Angular 2アプリのユーザーをログインページにリダイレクトする方法です。私はこれを実装する場所と方法を疑問に思っていますか?サービスクラスでは?ユーザーサービスクラス(私は、春のバックエンドからログインしたユーザー情報を取得するユーザーサービスクラスを持っています)。アプリ内のすべてのコンポーネントがセッション状態をチェックする必要がありますか?

2.角度のおかげでベストプラクティスを疑問に思います!

+0

トークンをバックエンドから取得し、ブラウザのローカルストレージに保存することをお勧めします。メインコンポーネントでは、ローカルストレージアイテムがnullでない場合は、解決策を使用してログインにリダイレクトするか、canActivateを使用してルートの誤ったアクセスを防止することもできます –

答えて

0

ユーザーがログインすると、1時間タイマー(Observable.timerを使用できます)を開始し、タイマー完了時にlogin/logout(router.navigateを使用)に移動できます。

カスタムHttpサービスを作成して、すべてのバックエンドコールに使用できます。カスタムサービスでは、バックエンドからエラーを受け取った後でlogout/loginに移動します。 を参照してくださいhttps://stackoverflow.com/a/44929725/7710727

関連する問題