【问题标题】:How to Authenticate Wordpress and PHP Aplication with same credentials?如何使用相同的凭据验证 Wordpress 和 PHP 应用程序?
【发布时间】:2018-12-19 23:17:42
【问题描述】:

我有两个网站,一个是 Wordpress,另一个是 PHP。如何使用相同的凭据登录 Wordpress 和我的 PHP 应用程序。

我需要当用户在我的 WordPress 网站上注册时,他会自动出现在 PHP 网站上的注册状态。

【问题讨论】:

  • Ypu 让我在搜索如何为此重用 wordpress 数据库 :) 仍然没有找到任何好的结果,但这可能是一种方式 - 在您的 PHP 应用程序和 wordpress 中为用户使用相同的表
  • 这篇文章似乎功能齐全dovy.io/wordpress/… 我在看app/web/wp/wp-includes/user.php,看到有wp_signon()wp_authenticate_cookie() 函数。我还要看看wp_authenticate_username_password() 的工作原理
  • @PavelJanicek 对两个站点使用同一张表并不能解决我的问题,我仍在寻找答案!

标签: php wordpress logging


【解决方案1】:

我会建议使用OAuth 2.0 Server,一个由thephpleague 提供的包。 它将允许您将您的一个应用程序变成一个 oauth-server,第二个是客户端。

oauth-server 应用程序将向客户端授予一个 api 密钥,以便其用户可以从客户端应用程序登录。

例如,当您使用 google/facebook 帐户登录 Stackoverflow 时,也会发生同样的事情:google/facebook 是服务器,而 stackoverflow 是客户端。

我认为使用 oauth 会比跨两个网络应用复制用户数据更清洁、更安全且符合标准,原因如下:

  • 您需要在您的任何网站上复制每个新用户;
  • 入侵您的任何网站都会向攻击者提供您的用户用于两个 Web 应用程序的凭据(登录名、密码),而使用 oauth,他在客户端上时无法获取 oauth-server 用户的密码;李>
  • 等;

还有很多其他原因,但有经验更丰富的开发人员可以为您提供更深入的解释。

还有一个适合您需求的 wordpress 插件,您可以找到 here 用于 JSON Web Token Authentication。

【讨论】:

  • 我研究过 OAuth。但我认为我的方法有点不同,我不知道 OAuth 是否是我的解决方案。当用户登录我的 Wordpress 网站并希望使用 PHP(从 Wordpress 网站本身)访问我的网站时,如果它在我的网站中以 PHP 访问方式注册并显示为已登录,我需要这样做,否则不要访问 PHP 网站。跨度>
  • 你检查过JSON Web Token plugin 的wordpress 吗?
  • 你也可以看看这个list of pluginsldap实现single sign on
  • 我的 Wordpress 站点上已经有 OAuth2 作为服务器,问题是我不知道如何让我的 PHP 站点成为客户端以使用我的 Wordpress 站点的凭据。我不知道在我的 PHP 网站上包含或添加什么来完成这项工作。
  • 检查这个tutorial;它展示了如何通过示例项目的链接设置完整的身份验证机制。如果您想直接去那里,这是本教程中示例客户端的链接:github.com/justingreerbbi/wordpress-oauth-server-clients
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多