gpt4 book ai didi

ios - AWSCognito Auth `getSession` 不会在 Swift 中触发回调

转载 作者:行者123 更新时间:2023-11-28 23:37:12 24 4
gpt4 key购买 nike

我对 Swift 有点陌生,但我正在尝试将 AWSCognitoAuth 改编为 Capacitor 的 Swift 插件。我在这里创建了一个 repo 协议(protocol):https://github.com/Kikketer/CapacitorTest

最大的问题之一是回调没有在 iOS 项目中触发:

cognitoAuth.getSession(self.bridge.viewController) { (session, err) in
// this is never called after I click the "sign in" button in Cognito
if(err != nil) {
NSLog(err.debugDescription)
call.reject(err.debugDescription)
} else {
call.resolve([
"accessToken": session?.accessToken?.tokenString ?? ""])
}
}

通过我在自述文件中描述的所有设置,这是亮点:

  1. 我设置了 Cognito 用户池,添加了一个用户,并为其创建了一个应用页面
  2. 我引入了最新的 AWSCognito pod(此时为 2.9)
  3. 我为 Capacitor 编写了一个插件来弥合差距,但理论上 Capacitor 与此无关,因为它似乎纯粹是 Swift 和 native 实现问题:https://github.com/Kikketer/CapacitorTest/blob/master/ios/App/App/CognitoPlugin.swift#L12
  4. 当我点击应用程序中的“登录”按钮时,Cognito 会在“特殊的 iOS 浏览器”中正常启动,但在我点击该浏览器中的登录按钮后,它就卡在那里了。
  5. 回调永远不会被触发,除非我点击“完成”(在这种情况下这是一个错误,没有返回实际的 token )。

我在任何日志中都没有看到任何明显的错误,所以我不确定下一步该怎么做。

我意识到有相当多的设置可以重复这个问题,但我们将不胜感激。

编辑:我做了更仔细的调查,我收到了 405 响应,但页面上没有显示实际的错误消息:

The Server responded with a status of 405
https://[mydomain].auth.us-east-2.amazoncognito.com/login?response_type=code&client_id=[myclientid]&state=[a big guid]&redirect_uri=com.testthing.myapp://signin&scope=email%20openid&code_challenge=[a long code]&code_challenge_method=S256

最佳答案

所以我在考虑 405(方法不允许)错误后想通了。发生的情况是 POST 被发送到我的应用程序,但我的应用程序没有处理 POST(因为 Capacitor 默认处理 GET)。

只需进行一个简单的更改即可使其完全正常工作,更新了 AppDelegate.swift 文件以正确处理打开网址:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
// TODO parse the url and only launch cognito auth for ://signin and ://signout
return AWSCognitoAuth(forKey: "AWSCognito").application(app, open: url, options: options)

// This was here before
//return CAPBridge.handleOpenUrl(url, options)
}

希望这对尝试使用 Cognito + Swift 的其他人有所帮助。

关于ios - AWSCognito Auth `getSession` 不会在 Swift 中触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611808/

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