I have an AuthService singleton class that manages all Auth services (Facebook, Firebase login, etc.).
Currently I am using UserDefaults to store core current logged-in user properties as per below to use through the app. I also have the requirement track other properties such as email, name, birthday, etc.
What/How is the best practice approach to managing a current logged-in user, is it UserDefaults, Singleton User class, etc?
let defaults = UserDefaults.standard
var isLoggedIn: Bool {
get { return defaults.bool(forKey: LOGGED_IN_KEY) }
set { defaults.set(newValue, forKey: LOGGED_IN_KEY) }
}
var userName: String {
get { return defaults.value(forKey: USER_NAME) as! String }
set { defaults.setValue(newValue, forKey: USER_NAME) }
}
var profileImgURL: String {
get { return defaults.value(forKey: PROFILE_PIC_URL) as! String }
set { defaults.setValue(newValue, forKey: PROFILE_PIC_URL) }
}