0

我正在开发自定义身份验证插件,用于从第三方 API 登录 joomla。

当我们使用用户/密码登录任何 Joomla 实例时,用户/密码被传递给 API 以获得正确的响应(如 login_id、用户名、员工身份、电子邮件、公用名。)然后 Joomla 在 Joomla 上创建用户并保存响应,如(用户名、全名、电子邮件)在 Joomla 数据库上。现在 ccms auth 插件工作正常。

我的要求是在来自 API 的用户身份验证插件时在 jos_users 上再保存一列。为此,我在 jos_user 表中创建了一列employee_ident,但无法将employee_ident 保存在jos_user 表的joomla db 中。

这是我的代码:

$result = $client->call($method, $params);

 [0] => Array
    (
        [login_id] => Frasier.9878
        [email_address] => frabc@gmail.com
        [position_code_type_ident] => 157
        [employee_ident] => 166651
        [position_code_department_abbr_name] => executive_management
        [position_code_title] => Chief Financial Officer
        [hire_date] => 2003-01-20
        [common_name] => Frasier Crane

    )
if($result)
            {       
            $email_address            = isset($result[0][email_address]) ? $result[0][email_address] : $credentials['username']."@test.com"; 
            $response->email          = $email_address;
            $response->fullname       =$result[0][common_name];   
            $response->employee_ident =$result[0][employee_ident];              
            $response->username       =$credentials['username'];

            $response->status        = JAuthentication::STATUS_SUCCESS;
            $response->error_message = '';  

        }
4

1 回答 1

0

您应该为此创建一个配置文件插件。默认情况下 Joomla! 有一个#__user_profiles可以保存其他用户信息的表。

有关更多信息,请参阅 JDocs 的此页面:https ://docs.joomla.org/Creating_a_profile_plugin/en

另一个例子是核心配置文件插件: https ://github.com/joomla/joomla-cms/blob/staging/plugins/user/profile/profile.php

于 2017-09-03T12:14:12.733 回答