#swift #amazon-web-services #swiftui #aws-amplify #aws-amplify-cli
Вопрос:
Я поддерживаю гостевой доступ к приложению, чтобы позже пользователь мог создать учетную запись, если захочет. Я включил неавторизованные входы amplify update auth
в систему . Если бы я должен был войти в систему зарегистрированного в Интернете пользователя, я бы сделал:
func signIn(username: String, password: String) {
Amplify.Auth.signIn(username: username, password: password) { result in
switch result {
case .success:
print("Sign in succeeded")
case .failure(let error):
print("Sign in failed (error)")
}
}
}
Но как мне запустить гостевое событие (войти локально как гость), а затем получить уникальный идентификатор, присвоенный устройству?
Я обнаружил, что могу получить идентификатор устройства следующим образом:
Amplify.Auth.fetchAuthSession().id
Однако, как только я прочитаю это значение несколько раз, я увижу разные идентификаторы, есть ли способ получить один уникальный идентификатор текущего устройства?
Ответ №1:
В итоге я воспользовался этим:
// Gets signed in User
func getUser() async -> AuthUser {
async let user = Amplify.Auth.getCurrentUser()
return await user!
}
Конечно, сначала вы должны проверить наличие сеанса, потому что я разворачиваю его выше, и если он равен нулю, ваше приложение выйдет из строя. После того, как пользователь будет возвращен, вы можете делать такие вещи, как user.id или что-то в этом роде 🤓
ПРИМЕЧАНИЕ: Я использую async
функцию, представленную в Swift 5.5, если у вас ее еще нет, просто удалите из нее async/await