在会话中维护Facebook用户ID

7
我正在尝试将Facebook登录添加到我的网站中。我已经使用Facebook JavaScript SDK进行了身份验证并创建了一个带有用户ID的cookie。问题在于,当用户注销(我正在销毁所有cookie)并导航到网站上的另一页时,我仍然可以看到带有数据的cookie。
以下是我用来创建和销毁cookie的函数:
Utils.createSessionCookie = function(id, name, access_token) {    
    if (Utils.getCookie(Consts.USER_ID) == null) {
        Utils.setCookie(Consts.USER_ID, id, 1);
        Utils.setCookie(Consts.NAME, name, 1);
        Utils.setCookie(Consts.ACCESS_TOKEN, access_token, 1);
    }
};

Utils.destroySessionCookie = function() {
    Utils.setCookie(Consts.USER_ID, '', -1);
    Utils.setCookie(Consts.NAME, '', -1);
    Utils.setCookie(Consts.ACCESS_TOKEN, '', -1);
};

Utils.setCookie = function(name, value, days) {
    var expireDate = new Date();
    expireDate.setDate(expireDate.getDate() + days);
    var cookieValue = escape(value) + ((days == null) ? "" : ";expires=" + expireDate.toUTCString() + "; path=/");
    document.cookie = name + "=" + cookieValue;
};

1
解决了,代码中有一个 bug,导致 cookie 一直被创建。 - Anand Mohan
9
我不希望你将这些 cookie 用于身份验证,你知道任何用户都可以创建相同的 cookie,并使用任意值,对吗? - Sean Kinsey
16
如果您已经解决了您的问题,能否请您回答自己的问题?谢谢 :) - NT3RP
1个回答

1

注意:只是帮助回答楼主的问题。

根据上面的评论,用户创建的代码中存在一个重复创建 cookie 的 bug。这不是 Facebook SDK 的 bug。

解决了这个 bug 后,Facebook 的 cookies 就正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接