Как сделать безопасную авторизацию юзера в мобильном приложении?
Пользователь вам отправляет свой логин/пароль.
Вы по нему генерируете случайный токен, кладете его в базу, отправляете пользователю.
Для полного счастья хорошо всю работу с api вести через https, в этом случае без серьезной подготовки никто этот токен не украдет.
Мне кажется что в 99% случаев этого вполне достаточно.
Альтернативное решение - не использовать токен, а использовать в каждом запросе  хеш, генерящийся на основе данных запроса и пароля пользователя (при этом сам пароль не передается)
условно что то вроде$hash = md5($password . "method=users&rand=23084723984623947&limit=10");
$url = 'http://api.site.ru/users?rand=23084723984623947&limit=10&'.$hash;
Даже если запрос будет скропрометирован - максимум что получится сделать это его повторить.
С учетом того что при определенных методиках генерации rand можно сказать что rand должен быть уникальным для пользователя к примеру за месяц - получаем достаточно надежную историю.
И да, это велосипед, как это называется правильно к сожалению не знаю, думаю другие подскажут :)
расшифровывать не нужно ))
нужно просто сравнить с такой же парой на сервере через код...
1. вы передаете username и hash (key - НЕ ПЕРЕДАЕТЕ!)
2. затем берете на сервере вычисляете (по пришедшему username) hash и сравниваете его с тем, что пришел.
3. равны - AUTH OK.