Подскажите новичку: есть сервис, для которого пишется мобильное приложение. Есть API, через которое мобильное приложение будет взаимодействовать с сервисом. Каким образом сделать аутентификацию (то есть отдавать данные по API только авторизированным юзерам)?
Какие есть варианты у меня?
Генерировать токен при авторизации, отдавать его мобильному приложению, и мобильное приложение при запросе к сервису каждый раз будет передавать этот токен. Но вопрос как генерировать этот токен? То есть у него должно быть обратимое шифрование, чтобы, грубо говоря, я на стороне сервиса мог узнать ID пользователя по токену? Или генерировать токен рандомно и хранить его в базе?
Или есть ещё какие то способы более безопасной аутентификации пользователей через API ?
Или генерировать токен рандомно и хранить его в базе?
Именно.
У пользователя есть некий ключ, он им подписывает свои запросы.
Например ключ qwerty, в запросе передается user_id (например метод getUserNameById), тогда подпись - некая хеш-функция от параметров и ключа, например sha1($key . $methodName . $userId)