WordPress使用wp_signon()方法登录的时候IE浏览器的问题

2016-06-19 20:57 栏目:技术开发 查看(9268)

在为长沙某公司开发企业官网的时候,我是使用WordPress来作为开发的,因为这个项目非常小,就是发布信息,用户登录注册及预约,因此采用这种较为敏捷的开发方式。查询WordPress相关资料后得知其实它本身就已经封装好了一个方法来进行登录操作,这就是wp_signon(WordPress官方文档)。

wp_signon()方法用于授权给用户登陆wordpress并可记住该用户名称。该函数取代了wp_login。WordPress 2.5版本起启用,该方法在wp-includes/user.php中,使用方法为:

wp_signon( $credentials, $secure_cookie );

【参数说明】

$credentials:(array) (可选) 登陆用户信息;Default: None

$secure_cookie:(boolean) (可选) 决定是否使用安全cookie;Default: None

注意:如果没有提供 $credentials, wp_signon 使用 $_POST 参数(键值为 “log”, “pwd” 和 “rememberme”)。

【函数返回值】

(object),登陆失败返回对象WP_Error,登陆成功则返回WP_User。

在谷歌中这个没有任何问题,但IE中发现这样做有一点问题,至于具体原因还没有完全弄清楚,这里写一下作为一个记录吧。因为暂时使用了一个感觉有点儿不着边的方法避免了这个问题。这个问题就是:当使用IE浏览器的时候,第一次使用这个方法登录完全正常,但退出之后再次登录却登录不上(这个方法返回的是成功,但不能获取任何有关用户的信息),而且清空IE浏览器缓存又可以正常登录并获取用户信息。

在临时处理方法中是在退出的时候强制进行session清空操作,但这里就纳闷了,按理说这里的session跟IE或者还是chrome客户端没什么关系吧,但为什么这么清空却正常呢?这里先记录以下,有时间再深入分析一下,顺便在这里贴出退出时强制清空session的在function.php中的代码。

add_action('init','session_manager');
function session_manager(){
session_start();
}

add_action('wp_logout', 'session_logout');
function session_logout() {
session_destroy();
}
与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:WordPress使用wp_signon()方法登录的时候IE浏览器的问题 - 微构网络
分享: