Angularjs 登录 cookie 第二次工作

Angularjs login cookie works second time

本文关键字:工作 第二次 cookie 登录 Angularjs      更新时间:2023-09-26
    login: function(user, success, error) {
        var s = new session(user);
        s.$login({}, function (u, putResponseHeaders) {
            if ($cookies.user) {
                console.log('cookie set' + $cookies.user);
                user = JSON.parse($cookies.user);
            }
            else
                console.log('no cookie set after login');
            console.log(u);
            $rootScope.user = user;
            console.log($rootScope.user.role);
            success(user);
        }, function () {
            error();
        });
    },

当用户点击登录时,服务器设置一个身份验证cookie,上面的函数应该处理cookie,并根据它的存在调用Success(user)。问题是用户第一次点击登录时"登录后没有设置cookie"被调用并且看不到cookie,第二次用户点击它是授权的。Chrome 可以在用户第一次点击时看到设置的 cookie,但为什么 Angular JS 代码看不到它?

因为 cookie 尚未设置并可用于 Javascript。

不过,这是一种

奇怪的方式来做你正在做的事情。你为什么关心饼干?登录不应该以 JSON 形式返回用户对象,而您只是使用它吗?cookie 应该只是为了传递会话信息以及后续请求......