2012-11-09 84 views
7

我正在尝试将Facebook登录添加到我的网站。我使用Facebook JavaScript SDK进行了身份验证,并创建了一个包含用户ID的cookie。问题是,当用户注销(我销毁所有cookie)并导航到网站上的其他页面时,我仍然可以看到包含数据的cookie。在会话中维护Facebook用户ID

下面是功能,我使用的创建和销毁饼干:

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

解决了这个问题。在代码中有一个错误,它反复创建cookie。 –

+9

我真的不希望你使用这些cookie进行身份验证,你意识到任何用户都可以创建相同的cookie,具有任意值的权利? –

+16

如果你已经解决了你的问题,你能否回答你自己的问题?谢谢 :) – NT3RP

回答

1

注:只要帮回答OP的问题。

根据上面的注释,用户创建的代码中存在一个错误,它会重复创建cookie。这不是Facebook SDK的错误。

解决了这个错误后,Facebook的cookie工作正常。