私は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にログインするにはどうすればよいですか??