顶点网 > 关于Datalife Engine使用CloudFlare的DNS后已登录用户自动退出的解决办法
关于Datalife Engine使用CloudFlare的DNS后已登录用户自动退出的解决办法


前言


在使用Datalife Engine(DLE)建立的其他两个网站时,由于服务器位置在国外,线路不是很优秀,所以导致部分用户访问网站打开的速度有些不理想,于是本着白嫖的心理,选择了CloudFlare的免费套餐,使用后,访问速度果然提升了很多,但后来发现了一件事,就是已登录的用户在很短的时间内就会自动注销登录,起初以为是浏览器中设置了不保持cookies,但通过测试,依然存在问题,然后从CloudFlare的设置上寻找问题所在,先后对SSL、DNS记录关闭代理、缓存等方面进行了排查,都没有解决问题。也和好友讨论过此无果,后来对比另外两个使用Datalife Engine(DLE)做的网站则不会出现这样的问题,差别就是没有使用CloudFlare的CDN功能,终于记起Datalife Engine(DLE)后台安全处有过一个设置,是关于启用代理获取用户ip的选项,于是测试一下,解决了这个问题,下面就把问题的产生和解决和大家分享一下,以便于更多Datalife Engine(DLE)爱好者更好的体验Datalife Engine(DLE)这个源码!


原因


Datalife Engine(DLE)托管在Cloudflare的CDN(内容分发网络)中,用户在访问这些网站时可能会遇到每隔几秒或几分钟自动退出登录的情况。这通常是由于Cloudflare的安全设置导致的。

Cloudflare为网站提供了一层保护,包括防火墙和安全规则,旨在防止恶意攻击和滥用。其中一个安全功能是针对用户的Cookie进行验证和调整。

当用户访问经Cloudflare托管的网站时,Cloudflare会检查用户的Cookie是否有效,以确保其身份和登录状态。如果Cloudflare认为Cookie存在问题,可能会将其视为潜在的恶意活动或安全威胁,并将用户视为未经身份验证的访问者,从而导致用户被自动退出登录。

这种情况可能发生在以下情况下:

1.Cookie被更改或篡改:如果Cookie被更改或篡改,它可能无效或具有不一致的数据,从而导致Cloudflare无法验证用户的身份。

2.Cookie过期或失效:某些网站的Cookie可能设置了较短的过期时间,如果Cookie在短时间内过期或失效,Cloudflare可能会将用户视为未登录状态。


解决


1.登录DLE后台,在左侧菜单中点击Script settings进入网站设置。
2.在顶部选项卡中,切换到 Security 选项卡中。
3.在HTTP header to get the user's IP address from一项中,输入HTTP_X_FORWARDED_FOR
4.保存,刷新后重新登录,就解决了这个问题。


总结


Datalife Engine(DLE)在该选项下的注释中提到:
默认情况下,引擎从全局头部REMOTE_ADDR获取访问者的IP地址,这是一种安全可靠的方式。如果不想更改默认设置,请将此设置留空。然而,当使用各种代理服务如DDOS保护时,您需要从其他头部获取IP地址。在这里,您可以指定需要获取IP的头部,例如HTTP_X_FORWARDED_FOR。您通过此设置收到的IP地址是:127.0.0.0(此地址是显示你当前的IP地址,在这里我编辑了该IP地址)。

这里要注意的是,以上解是我在使用中遇到的情况,有可能不适用于全部用户,但总体原因可能因网站配置和Cloudflare的安全策略而有所不同,也有可能是浏览器cookies设置的问题引起的。
最佳的做法是与源码技术支持团队或Cloudflare支持团队直接交流,以获取准确的诊断和解决方案。


Datalife Engine中文站原创,转载请注明出处。
返回