如何将我的CMS用户与Wordpress用户同步?

时间:2015-12-23 14:56:27

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

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

1 个答案:

答案 0 :(得分:0)

单点登录: 它取决于您的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上执行此操作,在登录验证功能/方法中。您可以使用此api for wordpress从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";
}