我目前正在与 bbPress 进行 RTX/Janrain 集成,但我坚持使用 SQL 查询,即使我一直在尝试使用通配符并且我知道已注册的电子邮件地址也没有给我任何结果。
登入
$rpxApiKey = 'xxxxx';
if(isset($_POST['token'])) { /* STEP 1: 提取令牌 POST 参数 */ $token = $_POST['token'];
/* 第 2 步:使用令牌进行 auth_info API 调用 */ $post_data = array('token' => $_POST['token'], 'apiKey' => $rpxApiKey, 'format' => 'json' );
$curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info'); curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $raw_json = curl_exec($curl); curl_close($curl);/* 第 3 步:解析 JSON auth_info 响应 */ $auth_info = json_decode($raw_json, true);
if ($auth_info['stat'] == 'ok') { /* STEP 3 继续:从响应中提取'标识符' */ $profile = $auth_info['profile']; $identifier = $profile['标识符'];
$profile['标识符']; if (isset($profile['photo'])) { $photo_url = $profile['photo']; }if (isset($profile['displayName'])) { $name = $profile['displayName']; }
if (isset($profile['email'])) { $email = $profile['email']; } /* 第五步,检查用户是否存在于数据库中,如果存在则登录,如果没有创建新用户则登录*/ global $bbdb; $querystr = " SELECT * FROM $bbdb->bb_users
WHERE user_email = $email LIMIT 1"; $rtx_user_id = $bbdb->get_results($querystr, OBJECT); print_r($rtx_user_id); if ($rtx_user_id) { echo "大成功"; wp_set_auth_cookie( (int) $rtx_user_id, 0 ); // 0 = 不记得,短登录,待办事项:使用表单值 do_action('bb_user_login', (int) $rtx_user_id ); } if (!$rtx_user_id) { echo "不太成功";}/* STEP 6: Use the identifier as the unique key to sign the user into
你的系统。这将取决于您的网站实现,您应该在此处添加自己的代码。*/
/* 发生错误 */ }
else { // 优雅地处理错误。将其连接到您的本机错误处理系统中。echo '发生错误:' . $auth_info['err']['msg']; } } } ?>
问题出现在第 5 步,即检查用户是否存在。
在此先感谢,马丁