php - 同时在自定义应用程序和 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 用户的登录?
解决方案
你APP上的用户在你的博客上应该有对应的wp_user记录。你可以这样做:
- 当用户在您的 APP 上注册时,调用 ajax 请求为您的博客创建 wp_user 帐户。
- 将 APP 中的 user_id 保存到博客的 wp_user 自定义帖子元中。
- 当用户登录到您的 APP 时,向博客调用 ajax 请求,该博客将以编程方式登录他们的 wp_user 帐户(密钥将是来自 APP 的 user_id)。
希望这可以帮助。
推荐阅读
- javascript - 隐藏和取消隐藏列会更改列的自动宽度
- c# - 是什么导致 MSSQL 中出现“非阻塞套接字上的操作会阻塞”错误?
- c++ - 将最多 50 位的 2 个数字相乘
- c++ - C++中的新运算符重载
- android-studio - 我想要在我的片段上加载动画屏幕,就像启动屏幕一样
- c# - Netcore 2.1 ServiceCollection 添加通用类型的 HttpClients 未按预期解析
- wordpress - 为产品标签添加产品过滤器
- ios - 对来自 firebase 的 tableView 数据进行排序
- vb.net - DataGridView.BeginEdit() 失败,因为 DataGridViewTextBoxEditingControl 已释放
- power-bi-report-server - Power BI 报表服务器(2018 年 8 月升级问题)