如何在不将其信息存储在wordpress数据库中的情况下通过API登录用户。

时间:2016-12-13 08:14:52

标签: php wordpress

就像facebook登录一样,我希望我的用户通过api登录我的wordpress网站。我想登录而不将用户的任何信息存储在wordpress数据库中。 这是我试过的

$ch = curl_init();
$username = $_REQUEST['value'];
curl_setopt($ch, CURLOPT_URL, 'http://api.ig.sapps.com/userLogin?emailOrUsername='.$login_data['user_login'].'&password='.$login_data['user_password'].'&api_token=12345&device_id=0&device_type=0');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
$result = json_decode($res);

if ($result->code == 400) {
$login_error = $result->message;
$all_errors = array($login_error);
}
if ($result->code == 200) {
wp_set_current_user($result->data->id, $result->data->username);
wp_set_auth_cookie($result->data->id);
do_action('wp_login', $result->data->username);

但我无法登录。请帮帮我。

1 个答案:

答案 0 :(得分:0)

有很多身份验证技术......但我只会解释两种方式。 (如果用户将登录您的应用程序,该用户将无论如何使用他/她的私人数据,其他方式无意义)

1)基于令牌的通用身份验证您必须在BackEnd上保留一些数据,以便在每个请求中检查此数据。

2)JWT - 一些第三方授权中心使用这种技术。通过这种方式,您无法保留用户数据。验证需要您的(第三方授权中心)唯一且私密的签名。

通过第二种方式,您或第三方授权中心会保存一些独特的安全签名,并使用此标志验证此用户登录和api呼叫请求。