v2board密码正确但是登录失败
曾经遇到过一个很诡异的现象,v2board密码都是对的,也提示了登录成功,但是就是登录失败,进入不了后台,有的用户不信邪,多次登录中会有一次成功。
开始以为是用户的账号密码错误,尝试过后台重置密码,还是一样的结果。
翻了翻对应的代码
AuthController.php
中的 login
方法。
常见的登录验证代码流程,只是其中最后一段,
1 | $authService = new AuthService($user); |
跟着查看 generateAuthData
方法,其中有一个 self::addSession
方法。
1 | public function generateAuthData(Request $request) |
继续追代码,找到 addSession
方法。
1 | private static function addSession($userId, $guid, $meta) |
其中的Cache
的get/put
操作看起来是那么醒目,有编程基础的人,看到这里,想必已经能猜到原因了,权限问题。
找到缓存目录storage/framework/cache/data
,果然是这个原因。
清一色的www
权限,莫名出现了一个root
权限目录。
这就造成了Session文件无法写入,也就造成了,明明登录成功了,但是却进入不了后台。
知道了问题,解决也就很容易了。
修改对应的cache文件目录权限。
chown www:www cache -R
再次登录,恢复正常。