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
}
Есть такие вопросы:
- Как и где сохранить токен пользователя при успешном логине? Нужно наверное модель сделать и распарсить ответ?
- Как в дальнейшем использовать токен пользователя в запросах приложения?
- Я так понимаю, открывать логин или главный скрин - можно добавить if-else в AppDelegate в application: didFinishLaunchWithOptions?
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Я у себя сохраняю в папке приложения при помощи
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 прям для хранения токенов
- Использование = чтение из памяти (смотри выше)
- Решение об открытии определенного экрана как вы правильно допустили можно реализовать через условный оператор. Сделайте проверку наличия ключа в памяти и если ключ в наличии то делайте переход дальше (смотри выше)