Я создаю API в Yii 1.x, который будет использоваться с мобильным приложением. Часть процесса включает логин (с именем пользователя и паролем), используя следующий JSON-запрос ниже: -
//Запрос, отправленный с именем пользователя и паролем
{
"request" : {
"model" : {
"username" : "bobbysmith",
"password" : "mystrongpassword"
}
}
}
//Если успешно зарегистрирован в ответ, ответьте
{
"response": {
"code": 200,
"message": "OK",
"model": {
"timestamp": 1408109484,
"token": "633uq4t0qdtd1mdllnv2h1vs32"
}
}
}
Этот токен очень важен - после входа пользователя в приложение я хотел бы, чтобы у них был доступ к другим страницам, для которых они должны быть зарегистрированы. Я хочу, чтобы мобильное приложение сохраняло этот токен, и если тот же 633uq4t0qdtd1mdllnv2h1vs32 обнаружен в любых последующих запросах, которые он примет в качестве аутентифицированного запроса (для этого пользователя "бобисмит" ).
Я немного неуверен в том, как лучше всего это делать, я провел некоторое исследование и могу сказать, что oAuth упоминается несколько раз, а также Basic Authentication через HTTPS.
Итак, вкратце это...
- На домашней странице мобильного приложения пользователь регистрируется правильно со своим именем пользователя и паролем, и это отправляет запрос API.
- Это возвращает успешный ответ (показан выше) с текущей меткой времени и всем важным токеном.
- Тот же пользователь переходит на другую страницу/представление приложения, где требуется токен a), и b) если он соответствует этому, этот пользователь аутентифицирует (например, чтобы они могли редактировать эту учетную запись и т.д.).
- Как только пользователь нажимает кнопку "Выход", этот токен затем удаляется (и может работать более длинный доступ к моей учетной записи и т.д.) - по существу, система проверки подлинности на токенах.
Может ли кто-нибудь объяснить лучший способ достичь этого? Пожалуйста, дайте мне знать, если то, что я сказал, не является 100% ясным, и я предоставил больше информации.
В то время как я использую PHP, решение Yii 1.x идеально подходит, поскольку это то, что использует текущий API.
Вкратце, приложение гарантирует, что каждый запрос на сервер включает в себя токен в полезной нагрузке или заголовке, чтобы этот токен можно было найти на следующей странице каждый, после того как он выведен из системы, этот токен просто удален или установлен to null/empty