我已经被困了两天了,这就是我的问题:
我正在查看laravel
应用程序的奇怪行为,我没有开发但我有责任弄清楚发生了什么。
我在AWS ELB
后面设置了一个laravel app,会话由memcached(AWS elastic cache
)处理。有时一切都很好,然后发生一些奇怪的事情:
当用户登录时,在应用程序中导航,执行操作,以某种方式向他显示登录页面。问题是,当我从地址栏中删除/ login
并将其替换为/ homepage
时,经过一些尝试后它会通过;它会显示无需登录就无法访问的主页。这表示用户未注销,并且没有正确设置。
在对此进行调查后,这是我能够制定的最佳解释:
在Laravel
中,有一个Catalyst / Sentry包来处理与身份验证相关的任务。当用户登录时,它会保存其IP(在这种情况下是ELB'ip
),并且因为elb's
IP正在更改,当用户点击链接后ELB
发生了IP更改,应用程序认为请求无效(我只是大声思考)并向用户显示登录页面。
这是一个常见的问题!?如果是这样我怎么解决这个问题??
非常感谢任何帮助。非常感谢你。
答案 0 :(得分:1)
这看起来像memcached
问题。 sentry
用于识别您是否为有效用户的内容称为persist code
。如果我的结果是正确的,那么persist code
更改没有明确原因(memcached
行为不当)。使用redis
代替,完美运作。