您现在的位置是:首页 > 网站制作 > WordpressWordpress

WordPress会员前台登陆安全验证失败的解决办法

杰帅2023-07-05【Wordpress】人已围观

简介明明用户名和密码正常,就是安全验证失败,简单来说就是无法登陆。如果管理员清空网站缓存的话,又可以正常登陆了。搬主题的一个站点也遇到过这样的情况,后来经过一番测试研究,问题终于解决,下面分享一下解决办法。

不知道有没有人遇到过这样一种情况:自己的WordPress主题带有会员系统,隔一段时间就登录失败,明明用户名和密码正常,就是安全验证失败,简单来说就是无法登陆。如果管理员清空网站缓存的话,又可以正常登陆了。搬主题的一个站点也遇到过这样的情况,后来经过一番测试研究,问题终于解决,下面分享一下解决办法。

问题产生的环境

首先说一下自己一个站点的环境是怎样的,给大家一个参考。

大概环境如上,问题表现如下:

  • 隔一两天,需要重新登录网站会员系统,然后显示“安全验证失败”,无法登陆。
  • 设置缓存时间小于10小时,问题依旧,无法登陆
  • 将登陆页面设置禁止缓存,问题依旧,无法登陆
  • 清空网站缓存,会员可以正常登陆
  • 清空本地浏览器缓存及cookie等,会员可以正常登陆

大概情况就是这样,但是用户没办法登陆的话,不可能每次会自动清理自己的浏览器缓存吧,明明是网站的问题。但是也总不可能每隔一两天进行网站缓存清理吧,这样还要缓存来干嘛。

问题解决办法

说实话,搬主题对于这个问题研究了很久,做过蛮多验证及调试。最终判断有可能存在的问题点在哪里。

之前搬主题一直在针对缓存进行处理,毕竟每次清空缓存后,用户就可以登录了。就判断为WordPress随机数过期问题导致的无法登陆。但是尽管操作过后,问题依然没有解决。

而网上大部分都是关于cookie被阻止的类似解决方案。比如网上的一些解决办法

用户名和密码都正常,不是密码问题。网上给出的几个方法。
1、升级最新版本
这里通过手动升级WordPress的办法(WordPress程序自动与手动升级新版本的操作过程)。将WP程序升级到最新版本。
2、升级主题和插件
这里将他的主题下载最新版本升级到最新。当然这里为解决这个问题我可以可以禁止主题。插件我先禁止插件使用,然后登录后台一个个再升级到最新启动。
3、设置cookie域

在wp_config.php 中增加一句cookie域定义

define('COOKIE_DOMAIN', 'www.banzhuti.com');

都没有解决我的问题。毕竟浏览器一般情况都是开启cookie的,所以搬主题找到的最终的解决办法如下:

(1)找到wp-includes/pluggable.php文件

(2)代码替换

找到如下代码:

setcookie($auth_cookie_name, $auth_cookie, $expire, ADMIN_COOKIE_PATH, COOKIE_DOMAIN, $secure, true);

将其中的 ADMIN_COOKIE_PATH 改为 SITECOOKIEPATH ,代码如下

setcookie($auth_cookie_name, $auth_cookie, $expire,SITECOOKIEPATH, COOKIE_DOMAIN, $secure, true);

保存后,清空网站缓存后,再次观察,一直未出现该问题。

问题解决总结

因为搬主题采用的是会员为前台登陆方式,即登陆的为www.banzhuti.com这样的根目录,而WordPress原生代码设置的为www.banzhuti.com/wp-admin这样的目录为会员登录使用,因此两者的cookie出现不一致的时候,就自然验证失败了。

也就是说当会员在网站登陆成功一次后,网站自动记录其会员的登陆cookie路径为ADMIN_COOKIE_PATH,而过几天网站缓存过期后,但是cookie还未过期,会员再次请求登陆的时候,因为是前台登陆,cookie域路径为 SITECOOKIEPATH ,最终两者冲突,导致一直验证失败,无法登陆。只要用上面的办法,将两者的cookie保持一致即可。或者你将会员登录的路径变成www.banzhuti.com/wp-admin这样的目录,问题也能解决。

Tags:LiteSpeed Cache   OpenLiteSpeed   SSH教程   WordPress   WordPress教程   主机教程

很赞哦! ()

文章评论

本站推荐

站点信息

  • 建站时间:2018-10-24
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计1174篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们