2

Angular.js を使用して 1 ページの通常のアプリケーションを作成しました。ユーザーがサインインした後、ブラウザで更新すると、サイン情報がなくなり、サインイン ステータスがリセットされ、再度サインインする必要があります。ブラウザで更新を行うステータスイベントのログイン?

ご協力いただきありがとうございます

4

1 に答える 1

7

AngularJS サービス$cookieStoreを使用できます。

しかし、AngularJS 1.0.7 では、パスや Cookie の有効期間を設定できません。独自のサービスを実装する必要があります。

その他のヒント:

-AngularJS 1.0.7 の場合-ここからライブラリをダウンロードする必要があります

-コントローラー/サービスにサービス $cookieStore を注入する必要があります

- セッション Cookie をチェック/設定/削除するグローバル サービスを作成する必要があります。

サービスの使用に関する出発点の例:

app.service('global', function($cookieStore, $location, $filter) {
    var globalService = {};
    globalService.user = null;
    globalService.isAuth = function (){
        if (globalService.user == null) {
            globalService.user = $cookieStore.get('user');
        }
        return (globalService.user != null);
    };
    globalService.setUser = function(newUser) {
        globalService.user = newUser;
        if (globalService.user == null) $cookieStore.remove('user');
        else $cookieStore.put('user', globalService.user);
    };
    globalService.getUser = function() {
        return globalService.user;
    };
    return globalService;
});

ログイン後、 setUser を呼び出して、ユーザー (サーバーから返されたトークン) を Cookie に保存します。次に、ログイン ユーザーを必要とするすべての要求に対して、認証トークン データを送信する必要があります。

トークンは PHP セッション (PHP を使用している場合) にすることができ、セッションはサーバー上で復元できます。

于 2013-07-01T15:46:16.380 に答える