0

我有一个需要登录的网站。登录由分配给目标设备(以及其他一些设备)的身份验证令牌管理,但由于某种原因,它无法在 Windows Phone 上运行。我已经在 iPhone 和所有桌面浏览器上对其进行了测试,并且它适用于所有这些浏览器。

我将其设置为向我显示设置的 cookie,并且它显示已设置的所有其他 cookie,但身份验证令牌 cookie 除外。

我尝试更改 cookie 名称(以查看是否与正在运行的一些冗余代码发生冲突),但这不起作用(仍在桌面浏览器上工作)。

我放置了一段代码来检测 setcookie 函数调用,它告诉我它被正确调用。在登录和 setcookie 的相同代码路径中,我也做了 $_COOKIE 的 var_dump,它显示令牌已被临时发送。

该代码确实包含检测移动浏览器的能力,但它未被使用(在模板引擎的几个小部分之外)。

关于代码的另一个注意事项是,从开始到结束,输出缓冲区都是启用的,并且只在代码末尾打印。

我还能做些什么来尝试找出问题的原因,或者是什么可能导致专门针对 Windows Phone 的问题。

编辑

我刚刚在 iPad 上测试了它,它也无法正常工作。非常奇怪,因为它适用于普通 iPhone 和 Safari 浏览器。

编辑

我已经在运行站点(具有相同数据库)的 LAN 上的计算机上安装了服务器(AMPPS),并且登录功能正常工作。

另外,在我的测试过程中,在手机上(在现场版上),用户被重定向到用户专用页面,但没有检测到 cookie,用户被返回到登录页面。其他 cookie 是,但身份验证令牌不是。

所有 cookie 都以相同的方式设置,time() + 3600 到期,路径设置为 '/'

4

1 回答 1

0

我想我已经解决了。该代码包括对令牌的一些 IP 验证,但由于某种原因,在这些设备上,IP(从 中返回$_SERVER['REMOTE_ADDR'])是127.255.255.255,这是不正确的。不知道为什么要这样做,但是我已经对其进行了修改,以便不考虑无效 ip(例如 127.255.255.255)的 IP,并且它现在正在工作。

于 2013-01-04T12:10:02.880 回答