如何在使用Angular.js刷新后保持登录状态

Joh*_*ing 2 login angularjs

我使用Angular.js制作了一页常规应用程序,用户登录后,如果在浏览器中刷新,签名信息消失,登录状态重置,我必须再次登录,我该如何保留登录状态事件在浏览器中刷新?

谢谢你的帮助

kcs*_*oft 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;
});
Run Code Online (Sandbox Code Playgroud)

登录后调用setUser将用户(可能是服务器返回的一些令牌)保存在cookie中.然后,您应该为每个需要登录用户的请求发送身份验证令牌数据.

令牌可以是PHP会话(如果使用PHP),并且可以在服务器上恢复会话.