Not logged in when using http

时间:2014-10-03 作者:Chris

我正在将WordPress多站点从一台服务器移动到另一台服务器,并决定在新设置中使用WAMP(Uniserver Zero)。

我遇到了一个旧设置上没有出现的问题,只有新的问题:

在我的主题的标题中,我有一个登录链接,如果用户已经登录,则可以使用“欢迎,[名称与个人资料链接][注销链接]”。

登录Wordpress时,我被带到了主页,我注意到它的标题中仍然显示“登录”,而不是我的姓名和个人资料/注销链接。如果我将任何页面的url更改为https而不是http,则会显示名称和配置文件/注销链接。因此,出于某种原因,Wordpress认为我在http中查看时没有登录,只有在https中。

我不确定这是否是我的Wordpress设置或apache或php中的内容。

以下是phpinfo提供的一些细节,可能会有所帮助:

服务器根C:/UniServerZ/core/apache2EDIT这似乎是Wordpress 4.0之后的问题。旧设置为3.8https://wordpress.org/support/topic/http-and-https-differences-for-function-is_user_logged_in-in-wordpress-40

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

通过https登录的用户应该始终通过https获得内容,否则让登录表单使用https是没有意义的。使用http,任何人都可以拦截cookie并使用它访问用户的帐户,甚至不知道用户和密码。

这里的问题可能是,为什么登录用户会看到http链接。一种解决方法可能是检测LOGGED_IN_COOKIE cookie已设置,并且应该在http和https上可用,如果设置了cookie,则重定向到https。

Clarification: 你没有have 要通过https为登录的用户提供一切服务,这只是遵循IMO的一个更简单的路径。更难的方法是只要求在您实际向用户显示机密信息的页面上登录,但如果您的用户关闭了管理栏,则可以将页面作为http提供服务,但如果打开,则需要使用https。

如果您所做的只是显示用户显示名称,并且它是公共信息,那么您可以从包含在LOGGED_IN_COOKIE cookie,但对于实际身份验证,您需要使用https。

结束

相关推荐

Hide a Menu Item on Login

我使用以下代码在客户未登录时隐藏菜单项,并在客户登录时显示它。.hide-item-not-login{ display: none !important; } .logged-in .hide-item-not-login{ display: block !important; } 我申请了这门课hide-item-not-login 我的菜单项,它的工作很好。我真正想要的恰恰相反。我希望该菜单项在用户登录时隐藏,在用户(woocommerce