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

Изучаю сейчас, как делать приложение с авторизацией по 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?

Ответы (1 шт):

Автор решения: Andrew
  1. Я у себя сохраняю в папке приложения при помощи NSUserDefaults. Чтение:

    let preferences = NSUserDefaults.standardUserDefaults()
    
    let currentLevelKey = "currentLevel"
    
    if preferences.objectForKey(currentLevelKey) == nil {
    //  Doesn't exist
    } else {
    let currentLevel = preferences.integerForKey(currentLevelKey)
    }
    

запись:

let preferences = NSUserDefaults.standardUserDefaults()

let currentLevelKey = "currentLevel"

let currentLevel = ...
preferences.setInteger(currentLevel, forKey: currentLevelKey)


if !didSave {
    //  Couldn't save (I've never seen this happen in real world testing)
}

вот есть статья с использованием NSUserDefaults прям для хранения токенов

  1. Использование = чтение из памяти (смотри выше)
  2. Решение об открытии определенного экрана как вы правильно допустили можно реализовать через условный оператор. Сделайте проверку наличия ключа в памяти и если ключ в наличии то делайте переход дальше (смотри выше)
→ Ссылка