登录并获取访客用户 ID - Amplify auth + SwiftUI (iOS)

时间:2021-07-11 20:45:31

标签: swift amazon-web-services swiftui aws-amplify aws-amplify-cli

我支持应用的访客访问,以便用户以后可以根据需要创建帐户。我已启用 unauthenticated logins 执行 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)")
        }
    }
}

但是如何触发访客事件(以访客身份在本地登录),然后获取分配给设备的唯一 ID?

我发现我可以像这样获取设备的 ID:

Amplify.Auth.fetchAuthSession().id

但是,一旦我多次读取该值,就会看到不同的 ID,有没有办法获得当前设备的单个唯一 ID?

1 个答案:

答案 0 :(得分:0)

我最终使用了这个:

// Gets signed in User
func getUser() async -> AuthUser {
    async let user = Amplify.Auth.getCurrentUser()
    return await user!
}

当然,您必须首先检查会话,因为我在上面解开它,如果它为零,您的应用程序将崩溃。返回用户后,您可以执行 user.id 之类的操作 ?

注意:我正在使用 Swift 5.5 中引入的 async 函数,如果您还没有它,只需从中删除 async/await