You're going to get a pretty subjective group of answers for this. There are a couple ways to do what you seem to be looking for.
First, is a separate "API" controller with the CodeIgniter-restserver which duplicates all of your controller functions. This would be sub-optimal since you'll have to maintain your website's code in two places.
Another, slightly better option would be to check for $this->input->is_ajax_request() or something similar sent by the mobile app, then send responses back with the restserver but the usual view() for the website.
Ultimately, and your best option, would be to refactor all your code making a single codebase API endpoint (this is where you'd have to decide if CI is a reasonable API or if you want to use something else) and your website and mobile apps use it.
Edit
I just realized you specifically mentioned ion-auth, and I happen to have PyroCMS's users module open.
if ($this->input->is_ajax_request())
{
$user = $this->ion_auth->get_user_by_email($user->email);
$user->password = '';
$user->salt = '';
exit(json_encode(array('status' => true, 'message' => lang('user:logged_in'), 'data' => $user)));
}
so, for the restserver you could instead send back:
$this->response(array('status' => true, 'message' => lang('user:logged_in'), 'data' => $user)), 200);
Edit 2
Regarding how to send post data with Ajax, that's really a whole different question from the OP, but a quick example using jQuery:
// Not complete code
<script>
// Attach a submit handler to the form
$( "#searchForm" ).submit(function( event ) {
// Stop form from submitting normally
event.preventDefault();
// Get some values from elements on the page:
var $form = $( this ),
term = $form.find( "input[name='s']" ).val(),
url = $form.attr( "action" );
// Send the data using post
var posting = $.post( url, { s: term } );
// Put the results in a div
posting.done(function( data ) {
var content = $( data ).find( "#content" );
$( "#result" ).empty().append( content );
});
});
</script>
Example from https://api.jquery.com/jquery.post/