【发布时间】:2017-02-25 08:16:21
【问题描述】:
我已基本完成开发人员使用 AWS 进行身份验证登录的流程。我似乎无法对收到的后端令牌进行身份验证,并且似乎找不到任何通过第三方后端执行开发人员身份验证的 current 实现。下面列出了我得到的错误。
截至目前,我的代码如下所示:
包含自定义身份提供者的类:
import Foundation
import AWSCognitoIdentityProvider
class CustomIdentityProvider: NSObject, AWSIdentityProviderManager {
var tokens: [NSString: NSString]?
init(tokens: [NSString: NSString]) {
self.tokens = tokens
}
@objc func logins() -> AWSTask<NSDictionary> {
return AWSTask(result: tokens! as NSDictionary)
}
}
AWS-APIManager.swift {sn-p}
/* obtained cognito token from my back-end via getOpenIdTokenForDeveloperIdentity*/
/* From here I my app receives an IdentityId and Token */
let client_cognito_id = String(describing: valid_response)
let session_token = json.dictionaryValue["Token"]!
let login_with_amazon = NSString(string: "cognito-identity.amazonaws.com")
let token = NSString(string: String(describing: session_token))
let customProviderManager = CustomIdentityProvider(tokens: [login_with_amazon: token])
let credentialsProvider = AWSCognitoCredentialsProvider(
regionType: self.AWS_REGION,
identityPoolId: "us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
identityProviderManager: customProviderManager
)
credentialsProvider.setIdentityProviderManagerOnce(customProviderManager)
credentialsProvider.getIdentityId().continue ({ (task: AWSTask!) -> AnyObject! in
if (task.error != nil) {
print("Error!!!: " + (task.error?.localizedDescription)!)
} else {
// the task result will contain the identity id
let cognitoId = task.result
print(cognitoId)
print("SUCCESS!!!")
}
return nil
})
}
由于某些奇怪的原因,我无法验证收到的令牌。我收到错误“登录令牌无效。无法传入 Cognito 令牌。”。我试图按照文档并将工作代码拼凑在一起,我已经找到了数百个来源,并且似乎无法超越身份验证过程的这一部分。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: swift amazon-web-services swift3 amazon-cognito