【问题标题】:How to Sync my CMS users with Wordpress users?如何将我的 CMS 用户与 Wordpress 用户同步?
【发布时间】:2015-12-23 14:56:27
【问题描述】:

我们设计了一个 CMS,其中包含一个名为 users 的表。我们的一些客户在我们的 CMS 旁边使用 Wordpress。他们需要将 Wordpress 用户与我们的 CMS 用户同步,这样用户就不需要注册两次...... 什么是最好和最简单的解决方案?

【问题讨论】:

    标签: php mysql wordpress synchronization content-management-system


    【解决方案1】:

    单点登录: 这取决于您的 CMS 以及它使用什么样的登录技术来保持用户登录。如果它不是一个可扩展的系统,那么它通常会使用会话来保持用户登录,而对于可扩展的系统,则主要使用 cookie。

    在 wordpress 端你可以使用这个钩子。它会在用户登录 wordpress 后立即触发。

    <?php
    function your_function($user_login, $user) {
        // first lookup the user in wordpress 
        // Then use an api call to login the user in your cms
    }
    add_action('wp_login', 'your_function', 10, 2);
    ?>
    

    同样,您也需要在 CMS 上的登录身份验证功能/方法中执行此操作。您可以使用 wordpress 的这个 api 从您的 CMS 登录用户。

    https://wordpress.org/plugins/json-api-auth/

    单次注册: 单一注册比登录简单得多,对于 wordpress,您可以使用在用户注册后立即触发的 user_register 挂钩。然后,您可以在您的 CMS 中创建一个非常简单的 api,它接收用户详细信息并将其添加到 CMS,或者如果两个系统都经过 ssl 认证,那么您可以使用简单的发布请求来往 CMS 发送数据。

    add_action( 'user_register', 'register_user_in_cms', 10, 1 );
    
    function register_user_in_cms( $user_id ) {
      // accessing the data of user, and then send a post request to CMS
      $user_info = get_userdata($user_id);
      echo 'Username: ' . $user_info->user_login . "\n";
      echo 'User roles: ' . implode(', ', $user_info->roles) . "\n";
      echo 'User ID: ' . $user_info->ID . "\n";
    }
    

    【讨论】:

    • 谢谢,但我不是指登录过程,我是指注册过程...当用户在 wordpress 中注册时,我想将用户添加到我的用户表中...“MySQL 事件”是一个好的解决方案?我该如何使用它?
    • 这比单点登录更简单,查看我的编辑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2020-11-18
    • 2013-07-17
    • 2017-07-31
    • 1970-01-01
    • 2017-05-07
    • 2022-10-13
    相关资源
    最近更新 更多