SharedPreferences не является безопасным местоположением. На корневом устройстве мы легко можем читать и модифицировать все приложения «SharedPrefereces xml». Даже если токен истекает каждый час, более новые жетоны все равно могут быть украдены из SharedPreferences. Android KeyStore следует использовать для долговременного хранения и извлечения криптографических ключей, которые будут использоваться для шифрования наших токенов, чтобы хранить их, например. SharedPreferences. Клавиши не сохраняются в процессе приложения, поэтому они сложнее , чтобы быть скомпрометированы.
Вам не нужно звонить func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
каждый раз, когда вы перезапускаете приложение.
Вы можете просто сохранить данные пользователя, как только пользователь успешно войдет в систему с помощью Google, и вы можете получить accessToken
с помощью
let accessToken = user.authentication.accessToken
, и вы можете сохранить его локально, как в UserDefault
и в следующий раз. когда пользователь перезапустит приложение, вы можете легко определить его, обратившись к нему accessToken
локально.
И с func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
пользовательский параметр будет иметь пользовательские данные, когда пользователь попытался войти в систему. И может также сохранить эти данные локально.
А с выходом из системы вы можете просто удалить данные локально, так что когда пользователь перезапустит приложение, ему потребуется снова войти в систему.
Обновление:
Вы можете получить доступ к информации о пользователе с помощью свойства profile
объекта user
. проверьте ниже пример
print(user.profile.email)
print(user.profile.name)
print(user.profile.familyName)
print(user.profile.givenName)
print(user.profile.hasImage)