【问题标题】:Wordpress current user is 'invalid' when on http instead of https当使用 http 而不是 https 时,Wordpress 当前用户是“无效的”
【发布时间】:2018-02-08 10:29:20
【问题描述】:

我在 wordpress 上有一个网站,可以在 http 和 https 上运行,但是,当用户登录时,它显然使用 https。

我注意到,在我登录后,如果我使用 http 访问任何页面,wp_get_current_user() 函数会返回一个 ID=0 的私人用户。我还可以看到这是全局 $current_user 字段上的值。但是,我仍然可以访问我的网站中需要用户登录的大部分功能,包括帐户页面。

如果我简单地改回 https wp_get_current_user() 返回正确的值。

有什么想法吗?

【问题讨论】:

  • 您可能希望在您的 httpd 服务器 (nginx/apache) 上添加重定向规则,以将所有 http 请求重定向到 https。这将解决您的问题,并且是明智的安全措施。
  • 0 不是实际的用户 ID,这意味着 没有 用户。会话 cookie 参数可能存在问题。 “我在 wordpress 上有一个可以在 http 和 https 上运行的网站” - 这才是你真正应该解决的问题......谁也从你的网站可以使用 HTTP 访问中受益?可能没有人,所以你应该设置你的重写,把对 HTTP URL 的任何请求重定向到 HTTPS 版本开始。

标签: php wordpress


【解决方案1】:

请使用 get_userdata 函数代替 wp_current_user()

get_userdata Codex

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 2017-10-07
    • 1970-01-01
    • 2016-01-29
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    相关资源
    最近更新 更多