Аутентификация в приложении по sms


#1

Изучаю сейчас, как делать приложение с авторизацией по sms. Есть представление как это можно сделать, но пока не понятно, как это всё можно соеденить.

У меня есть метод для отправки sms с таким телом:

{
    "phone":"+79994444444"
}

И такой ответ:

{
    "success": true,
    "result": {
        "message": "Successfully sended code!"
    },
    "error": null
}

Далее идёт запрос на авторизацию с смс кодом с таким телом:

{
    "phone":"+79994444444",
    "code":1234
}

И такой ответ (при успехе):

{
    "success": true,
    "result": {
        "access_token": "eeee...",
        "token_type": "Bearer",
        "expires_at": "2022-02-15 16:14:00"
    },
    "error": null
} 

Есть такие вопросы:

  1. Как и где сохранить токен пользователя при успешном логине? Нужно наверное модель сделать и распарсить ответ?
  2. Как в дальнейшем использовать токен пользователя в запросах приложения?
  3. Я так понимаю, открывать логин или главный скрин - можно добавить if-else в AppDelegate в application: didFinishLaunchWithOptions?

#2
  1. Если для изучения и простоты, можете хранить в UserDefaults. Или сразу использовать KeyChain хранилище.
  2. Если все делаете по феншую, должен быть один главный метод, который формирует и отправляет все ваши запросы. Следовательно в нем должна быть реализована логика подстановки токена, если он есть.
  3. Можете поискать подобные темы на форуме или посмотрите на сайте, в разделе Копошилка
    https://swiftbook.ru/post/tutorials/ios-root-controller-navigation/
    В интернете так же можно найти способы реализации. Их достаточно разных.

#3

Спасибо. Теперь я разобрался!


#4

Для удобства есть библиотека KeychainAccess