我已经创建了一个joomla插件来进行身份验证,就像正常的joomla身份验证一样(意图是:我在joomla之上使用civicrm,因此基于civicrm成员资格状态我想为该用户更新joomla用户组)。它在普通的joomla和Civicrm版本(2.5.24)上运行良好。
当我在现有客户端站点(2.5.20)上尝试使用相同的插件时,使用joomla defualt认证进行身份验证,而不是使用我的插件。 我安装了我的插件并启用了它。但它没有选择我的身份验证插件。
有趣的是,当我输入错误的用户名或密码时,它会进入我的插件“onUserAuthenticate”方法。如何让我的插件的“onUserAuthenticate”方法始终有效..
感谢您的宝贵支持!!
答案 0 :(得分:3)
我认为Joomla对用户进行身份验证的方式是它使用所有已启用的身份验证插件来验证您的用户名/密码。
如果您希望自己的插件始终有效,可以禁用其他插件。所以Joomla总会落到你的onUserAuthenticate
方法。但请注意:仅当您的网站不需要任何其他身份验证插件时才有效。
来自joomla docs
为了成功进行身份验证,只有其中一个插件需要返回
JAUTHENTICATE_STATUS_SUCCESS
结果。
我曾经有过建立joomla网站的请求,但客户只希望Joomla管理员登录管理站点,在前端,只有api用户可以登录。 我做的是我在Joomla上禁用所有身份验证插件并创建我自己的插件,该插件将检查用户是在前端还是后端。我使用joomla代码进行后端登录,使用我的代码进行前端登录。
效果很好。