У меня есть приложение, которое использует api rest для аутентификации.Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я сохраняю токен пользователя в своих UserDefaults и имя пользователя, потому что это два основных параметра, необходимых для получения сведений о пользователе.таким образом, если приложение закрыто пользователем, он все равно должен иметь возможность просматривать его профиль при открытии приложения, но вместо этого профиль возвращает пустые данные.это коды UserDefaults, которые у меня есть
let defaults = UserDefaults.standard
var isLoggedIn : Bool {
get {
return defaults.bool(forKey: LOGGED_IN_KEY)
}
set {
defaults.set(newValue, forKey: LOGGED_IN_KEY)
}
}
//Auth Token
var authToken: String {
get {
return defaults.value(forKey: TOKEN_KEY) as? String ?? ""
}
set {
defaults.set(newValue, forKey: TOKEN_KEY)
}
}
var userUsername: String {
get {
return defaults.value(forKey: USERNAME_KEY) as? String ?? ""
}
set {
defaults.set(newValue, forKey: USERNAME_KEY)
}
}
Я понятия не имею, почему он не получает данные пользователя.
Мой второй вопрос: когда я выхожу из системы, все данные пользователя очищаются, как и ожидалось, но в тот момент, когда я пытаюсь войти в систему с другим пользователем, authToken нового пользователя и детали выводятся на консоль, но пользовательпрофиль возвращает профиль предыдущего человека.что не должно быть.мой код показан ниже
func logoutUser() -> Void {
pk = 0
username = ""
email = ""
firstName = ""
lastName = ""
AuthService.instance.isLoggedIn = false
AuthService.instance.authToken = ""
AuthService.instance.userUsername = ""
}
@IBAction func logoutPressed(_ sender: Any) {
UserDataService.instance.logoutUser()
dismiss(animated: true, completion: nil)
}
Я также хотел бы добавить, что когда я запускаю API, используя почтальон, я получаю ответ, "detail": "Signature has expired."
, поэтому мне пришлось ввести новый токен в заголовок, чтобы он отображалданные пользователя снова