我有一个React应用程序,目前使用Wordpress完成了用户身份验证。因此,我正在使用JWT_AUTH!用于管理用户登录功能的插件。
因此,现在需求已更改,用户应该只需一次登录即可登录React和Wordpress网站。这意味着如果用户登录到React应用程序,那么他也应该自动登录到他的Wordpress应用程序。同样,如果用户在Wordpress应用程序上登录,他也应该自动登录到他的react应用程序。
我已经创建了一个自定义的REST API端点来满足此要求。但是它没有按预期工作。当我在浏览器中使用此API链接时,此端点有效。那是因为它不具有通过REST API调用存储cookie的功能。
我还尝试使用其余的API调用生成身份验证Cookie,但它给了我“ 500”错误。
add_action( 'rest_api_init', function () {
register_rest_route( 'user/v1', '/api-login-check', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'rest_api_login_user',
'schema' => array(
'type' => 'array'
)
));
});
function rest_api_login_user($object, $request = null) {
$response = array();
$parameters = $request->get_json_params();
$creds = array();
$creds['user_login'] = $object['username'];
$creds['user_password'] = $object['password'];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ($user) {
$response['code'] = 200;
$response['message'] = __("User logged in", "wp-rest-user");
return new WP_REST_Response($response, 123);
}else{
$response['code'] = 403;
$response['message'] = __("User not logged in", "wp-rest-user");
}
}
有没有简单的方法可以做到这一点?另外,如果可以通过rest api调用将用户重定向到其他网址,那也可以。