gpt4 book ai didi

ios - 未使用联合登录在 AWS Amplify 用户池中创建用户

转载 作者:行者123 更新时间:2023-12-05 02:37:53 25 4
gpt4 key购买 nike

[iOS15、SwiftUI、AWS 放大]

我正在使用一个

SignInWithAppleButton(
.signIn,
onRequest: configure,
onCompletion: handle
)
.signInWithAppleButtonStyle(.white)
.frame(height: 44.0)
.clipShape(Capsule(style: .continuous)
)

调用 handle 函数,调用此 signIn 函数:

func signIn(with identityToken: String) {
guard
let plugin = try? Amplify.Auth.getPlugin(for: AWSCognitoAuthPlugin().key),
let authPlugin = plugin as? AWSCognitoAuthPlugin,
case .awsMobileClient(let client) = authPlugin.getEscapeHatch()
else {
return
}

client.federatedSignIn(
providerName: "signInWithApple",
token: identityToken) { state, error in
if let unwrappedError = error {
print("Error in federatedSignIn: \(unwrappedError)")
return
}
guard let unwrappedState = state else {
print("userState unexpectedly nil")
return
}
print("Successful federated sign in:", unwrappedState)
}
}
}

控制台打印Successful federated sign in: signedIn,但是当我在 AWS Amplify Admin UI 或 AWS Cognito 中检查用户池时,它是空的。

AWS 管理界面:

User Management

AWS Cognito -> 用户池 -> 联合身份:

Federated Identities

知道我做错了什么吗?

最佳答案

调试 HTTP 流量时,我发现 client.federatedSignIn() 没有返回一条错误消息。该错误表明身份 token 与提供商不匹配,因此我决定尝试使用几种不同的提供商名称选项,有效的选项是:appleid.apple.com

    client.federatedSignIn(
providerName: "appleid.apple.com",
token: identityToken)

import AWSMobileClientXCF
...
client.federatedSignIn(
providerName: IdentityProvider.apple.rawValue,
token: identityToken)

做进一步的研究,我还发现在使用联合登录时,用户没有在用户池中创建。只有在使用凭据登录或使用托管 UI 进行社交登录时才会发生这种情况。

关于ios - 未使用联合登录在 AWS Amplify 用户池中创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69858702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com