首页 > 解决方案 > 同时在自定义应用程序和 wordpress 中进行身份验证?

问题描述

我在 domain.tld 上有一个应用程序,我在 domain.tld/blog 上使用 WordPress 作为应用程序的博客。该应用程序有用户,我希望用户在登录应用程序时登录 WordPress,这样当他们评论博客文章时,他们就已经登录并使用应用程序中的用户名。这也将帮助我构建一个动态菜单,当用户未登录时显示登录和注册菜单项,当用户登录时显示仪表板和注销菜单项。登录必须是唯一的,那就是从应用程序登录表单。用户不需要在 WordPress 端管理任何东西,所以我也会为非管理员用户禁用 WordPress 面板。解决这个问题的最佳方法是什么?我认为只有 WordPress 登录 cookie 必须由应用程序在应用程序登录时设置,这将使用户在应用程序和 WordPress 中登录,记住在应用程序上注册时,它会在 WordPress 的数据库中创建相同的用户。我在我的应用程序上试过这个:

if ( $login_valid ) {
    require_once '<path_to_wordpress>/wp-load.php';
    wp_set_auth_cookie( $user_id_var ); // set logged in cookie for that user id, which just logged in my app, so they would be logged in on blog, too.

}

现在所做的是在登录后重定向到博客而不是应用程序仪表板。请问有什么建议吗?为了简化问题:如何使用应用程序的凭据从另一个应用程序实现 WordPress 用户的登录?

标签: phpwordpressauthenticationuser-input

解决方案


你APP上的用户在你的博客上应该有对应的wp_user记录。你可以这样做:

  1. 当用户在您的 APP 上注册时,调用 ajax 请求为您的博客创建 wp_user 帐户。
  2. 将 APP 中的 user_id 保存到博客的 wp_user 自定义帖子元中。
  3. 当用户登录到您的 APP 时,向博客调用 ajax 请求,该博客将以编程方式登录他们的 wp_user 帐户(密钥将是来自 APP 的 user_id)。

希望这可以帮助。


推荐阅读