我正在尝试找出CakePHP cookie并满足我稍微不寻常的身份验证要求。
我有一个基于CakePHP的数据收集系统,现在正在与使用COTS软件构建的报告系统集成。报告系统需要受访问控制,除非我想复制两个系统中的所有用户帐户,否则我需要报告系统能够找出用户是否在我的CakePHP系统中进行了身份验证。
报告系统允许我在客户端的报告请求首次到达时加载Java类并执行函数。所以我的想法是
我可以获取cookie,在请求中发送它,并且我可以单独在PHP和Java之间共享加密信息。
但是,当我在Java请求中使用“新鲜”cookie(我的浏览器重复发送的cookie以及新登录后对CakePHP站点的请求)时,响应表明用户未登录。如果我然后在我的浏览器中重新加载该网站,我已经注销。我怀疑cookie中可能存在一些关于user-agent(?)的额外信息,这些信息会导致Java源请求被抛出并且会话被破坏以保证安全,但我不太了解系统。我想我可能会看到CakePHP防止会话劫持(通常会让我开心)。
有人能告诉我是否有办法解决这个问题?最好不要将CakePHP中的自定义身份验证组件作为数据收集站点,但我的报告截止日期并不遥远。
任何帮助都非常感激。
答案 0 :(得分:1)
一种解决方法:
获取CakePHP将随机令牌存储在单独的cookie中,并作为用户表中的字段存储。
然后让Java应用程序获取令牌,并将其发送到cakephp应用程序以获取用户的详细信息。
或者,让它使用CakePHP应用程序本身进行身份验证,并传递session id以使蛋糕使用正确的会话。注意,需要在调用session_start()之前完成使用该函数的设置。