Here is a simple code I use on a rest endpoint to login from a Vue page:
public function post() {
$properties = $this->getProperties();
$properties = array(
'login_context' => 'web',
'username' => $properties['username'],
'password' => $properties['password'],
'returnUrl' => "/",
'rememberme' => 0,
);
$rawResponse = $this->modx->runProcessor('security/login', $properties);
$response = $rawResponse->getResponse();
if (!$rawResponse->response["success"]) {
return $this->failed('Failed login', $response->getResponse(), 401);
}
return $this->success('Login executed',$response->getResponse());
}