我从 2 天开始就对这个问题感到恼火。
我正在使用MODx Revolution 2.2.5(传统)并且想从外部服务器登录到 modx 只是为了获取一些用户详细信息。
1)我知道 runprocessor 方法只有在我登录到管理器时才有效(不幸的是,这是我知道登录用户的唯一方法)所以我尝试了 IFRAME 方法来避免(跨脚本)它工作得很好但我不能由于同样的问题,跨域访问策略,使用 javascript 从 IFRAME 读取数据。
当我尝试使用 CURL 等其他方法发布数据时,Ajax 使用
header("Access-Control-Allow-Origin: *");
我能够登录(我看到 $response->response['success'] == 1)但无法访问任何数据,它说
Fatal error: Call to a member function get() on a non-object
下面是我正在使用的代码片段
if(isset($_POST) && count($_POST)){
$c = array(
'username' => $_POST['username'],
'password' => $_POST['password']
);
$response = $modx->runProcessor('security/login',$c);
if($response->response['success'] == 1){
$user['id'] = $modx->user->get('id');
$profile = $modx->user->getOne('Profile');
$user['fullname'] = $profile->get('fullname');
$user['email'] = $profile->get('email');
echo json_encode($user);
}else{
echo json_encode($response->response);
}
}
2)我可以使用登录片段,但它不会返回我期望的输出。我们已经准备好了站点,并且我们已经在使用登录插件,所以我什至无法修改登录插件以响应预期的数据
我如何使用 api 或任何其他方法登录 modx ?