【发布时间】:2014-06-02 09:10:15
【问题描述】:
情况
我在客户端网站上实现了 kirby Auth 插件的修改版本,它基本上是这样工作的
- 用户帐户是简单的 kirby 内容文件,标题用作登录名,密码字段包含用户密码的 bcrypt 加密版本
- 在网站上,访问者可以点击“客户区”,进入由修改后的身份验证插件管理的模板(重定向到“登录”表单)。
- 该网站是多语言的。所以帐户文件看起来像
content/extranet/login/login.fr.txt或作为示例content/extranet/bastian/bastian.fr.txt,这就是修改后的 Auth 插件正在寻找的内容,它找到文件并读取它,检查密码,然后登录用户。 - 此系统要求帐户页面标题与其 URL 相同,并且始终是不可见页面
- 用户已登录,只能在“安全”模板中查看其文件夹中存在的文件
这一切都在我的本地 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
在本地运行时的屏幕截图
希望有人能在这方面帮助我!询问任何进一步的信息,我会给它。
【问题讨论】: