4

ログインフォームで始まるシングルページアプリケーションを実装しようとしています。フロントエンドには AngularJS を使用しています。

ログインのコントローラーで認証データを確認し、問題がなければ、($cookieStore サービスを使用して) ユーザー データを使用して Cookie を設定し、別のビューにルーティングします。ここでは、2 番目のビューのコントローラーで、Cookie からのユーザーが空かどうかを確認し、空である場合は、ログイン ビューにリダイレクトします。

私がやりたいことは、ユーザーがブラウザを閉じたとき、またはページを離れたときに Cookie を削除することです。私は使用しようとしました:

$scope.$on("$locationChangeStart", function(){
    $cookieStore.remove('user');
});

また

$scope.$on("$destroy", function(){
    $cookieStore.remove('user');
});

しかし、それは機能しません。ユーザーがログイン (Cookie が設定されている) し、2 番目のビューに正常にリダイレクトされた後、ブラウザーを閉じる/ページを離れる (Cookie はまだ存在する) というシナリオを回避したいと考えています。別のユーザーが 2 番目のビューの URL を書き込み、最初のユーザーのデータを含む Cookie がまだ存在するため、認証に成功します。

誰でもこれで私を助けることができますか?

プランカーリンク

4

2 に答える 2

0

私はわかりません。しかし、ロジックで何かを行う前にブラウザーが閉じてしまうこともあります。

これを試して :

$scope.$on("$locationChangeStart", function(event){
    event.preventDefault()
    $cookieStore.remove('user');
});
于 2013-10-27T19:16:41.043 に答える