我在客户端网站上实现了kirby Auth插件的修改版本,它基本上就是这样工作
content/extranet/login/login.fr.txt
或作为示例content/extranet/bastian/bastian.fr.txt
,这是修改的Auth插件正在查找的内容,它找到文件并读取它,检查密码,然后登录用户。 这一切在我的本地MAMP服务器上运行良好,如截图所示,但在生产服务器上http://www.driving-evolution.com,这不起作用,我不知道为什么,我已查看很多地方,我不明白发生了什么。 (它也不适用于登台服务器)
在生产服务器上,您输入好的或坏的登录信息,表单不会显示任何错误消息,也不会记录用户。起初我认为这可能是因为我的bcrypt安装,但它不是,因为我禁用它(并使用普通密码代替),它仍然无法正常工作。
问题似乎不是来自这里的插件,而是来自我的实时PHP堆栈和本地php堆栈之间的区别(我的猜测是在php会话处理上)。
远程PHP是5.3.3
以下是两个安装中CURL的示例输出:
curl -d "username=test&password=test" -i devo.loc/fr/login
HTTP/1.1 302 Found
Date: Tue, 27 May 2014 12:59:49 GMT
Server: Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8y DAV/2 PHP/5.5.3
X-Powered-By: PHP/5.5.3
Set-Cookie: PHPSESSID=9249a942248a2382d8eb10090bf5d825; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: authFrontend=mc06csp25; expires=Wed, 28-May-2014 12:59:49 GMT; Max-Age=86400; path=/
Set-Cookie: PHPSESSID=b38ec0b342356c2c38778e4a6925f085; path=/
Set-Cookie: authFrontend=8qyyn; expires=Wed, 28-May-2014 12:59:49 GMT; Max-Age=86400; path=/
Location: http://devo.loc/fr/extranet
X-UA-Compatible: IE=edge
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=utf-8
curl -d "username=test&password=test" -i www.driving-evolution.com/fr/login
HTTP/1.1 200 OK
Date: Tue, 27 May 2014 13:01:32 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=6j9o1i4djetojtbg444i51efm7; path=/
Vary: Accept-Encoding
X-UA-Compatible: IE=edge
Connection: Keep-Alive, close
Transfer-Encoding: chunked
Content-Type: text/html
远程PHPVER:http://www.driving-evolution.com/phpver.php
希望有人能够帮助我!询问任何进一步的信息,我会给它。
答案 0 :(得分:0)
原来它是CMS的问题,文件缓存已打开而不是忽略“登录”,“注销”和“外联网”文件(都与客户区域相关),不得不添加:
c::set('cache.ignore', array('api', 'sitemap', 'extranet', 'account', 'login', 'logout'));
到我的kirby配置(api和站点地图无关)。
这可以解决问题,因为登录表单已缓存,因此无法点击服务器上的任何内容。现在表单没有缓存。