使用Java应用程序进行WordPress用户身份验证

时间:2020-01-24 作者:PastorPL

我有一个包含用户的Java Web应用程序。另一方面,我安装了wordpress。

我有一个要求,我的java应用程序中的用户也应该可以在wordpress中使用(换句话说:我需要使用我的java应用程序中的凭据在wordpress中授权用户)。

因为我是Java开发人员,对Wordpress只有非常基本的知识,所以我一直在寻找一些合适的插件。我做了一些研究,发现了两件事:

我找到了一种叫做Keyring this Set up WP Authentication from External API SE线程关于从外部来源授权苏联,但是,在这两种情况下,都应该进行一些php开发。

我的问题是,在Wordpress端是否有任何其他方法来配置外部用户身份验证,但不开发任何东西?或者使用Keyring或/并编写自己的过滤器是正确的方法?

重要的是,我希望这个机制保持简单,因为它只在内部工作。

1 个回复
SO网友:Tom J Nowell

Wordpress端有没有其他方法来配置外部用户身份验证,但不开发任何东西?

不是。WordPress提供的唯一现成的身份验证是基于cookie的身份验证。

然而,也有基于插件的解决方案,特别是那些依赖于广泛接受的标准的解决方案,这些标准并不是WordPress独有的。这些实现了标准化的身份验证协议,例如:

  • Oauth1, 您可以将其与REST API一起使用,从Java进行身份验证Oauth2, 与Oauth1一样,您也可以使用它,我建议您使用它而不是Oauth1,假设您的站点使用SSL/TLS/HttpsSAML, 您可以使用SAML提供程序进行身份验证,并使用它而不是WP来处理您的帐户,还可以安装WP插件,使WordPress也使用SAML提供程序JWT, 如果可能的话,出于安全原因避免使用,不仅仅是在WP中,它很有吸引力,但有根本缺陷,我提到它是为了完整性Basic Auth, 最简单但最不安全的选项Basic Auth with Application Passwords, 与基本身份验证相比,安全性稍高一些,但构建一个漂亮的用户界面却不那么容易Rolling your own, 您可以实现一两个REST API端点来处理用户登录和注册,但这是一个非常糟糕的主意。有一个原因是,那些发现这一点的人编写了OAuth或SAML等标准,将其视为自己的密码学,除非你拥有该学科的学位,否则你将构建一些不安全的漏洞,不值得麻烦。请注意,这些协议不是WordPress协议,而是跨多个软件使用的通用标准。

    例如,我有一个CLI应用程序,它要求对用户进行身份验证,使用WordPress站点存储数据/用户等。为了登录,该应用程序使用OAuth1与WordPress和exchange详细信息进行通信。

    对于您的Java应用程序,您可以通过OAuth2与WordPress通信来验证您的用户,甚至可以显示一个显示要批准的登录表单的内联对话框。

    REST API需要进行身份验证并与REST API通信,从而可以轻松地与WordPress站点进行基于JSON的通信。这将简化事情,并以Java乐于阅读和处理的机器可读方式提供数据。它还允许您使用公共库与WordPress通信,而不是从头开始构建API请求

    或者使用Keyring或/并编写自己的过滤器是正确的方法?

    这不是一个单一的问题,如果您选择一个标准,那么您可以将其分解为一个纯粹的WP问题和一个纯粹的Java问题。用Java实现OAuth2客户机的结果是用Java登录WP的结果的100倍。使用OAuth2登录WP也是如此。

    然而,Java问题不在此堆栈范围内(尝试堆栈溢出),插件建议也不在此范围内(有一个软件建议堆栈)。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。