Я пытаюсь сохранить данные ответа API, которые будут использоваться другим сетевым запросом, в моем случае это токен доступа, который будет включен в заголовок для любого последующего вызова API.Мне не нужно , чтобы оно постоянно сохранялось (что считается UserDefaults, Keychain, CoreData и т. Д. не обязательно ), поскольку при входе в систему будет предоставлен новый файл.
Как мне сохранить токен, чтобы он мог быть доступен другим ViewModels и передавался в качестве аргумента при вызове службы?Пожалуйста, поправьте меня, если я неправильно понял.
Модель
// Response data object
struct Login: Codable {
let accessToken: String
let type: String
}
ViewModel
// Call login service upon button tap
let loginOutput = loginTapped
.filter { username, password in
username.count >= 4 && password.count >= 4
}
.flatMapLatest { username, password in
PostLoginService.build(User(username: username,
password: password))
.materialize()
}
.share()
let loginSuccess = loginOutput
.elements() // Return Observable<Login>
ViewController
// Subscribe to response output
viewModel.output.loginSuccess
.subscribe(onNext: { [weak self] response in
// Question:
// Call a method in ViewModel to store the response?
// How do I store this response object?
// Store in Model's Login struct?
})
.disposed(by: disposeBag)