AWSを使用して開発者認証サインインのプロセスをほぼ完了しました。私が受け取ったバックエンドトークンを認証できないようで、の現在のの実装では、サードパーティのバックエンド経由で開発者認証を行っているようです。私が得るエラーは以下の通りです。SwiftでAWS Cognitoトークンを検証する
私のコードは次のようになり、今の時点で:いくつかの奇妙な理由で
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 {スニペット}
/* 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
})
}
:カスタムIDプロバイダを含む
クラス私が受け取ったトークンを認証できないという奇妙な理由があります。 「ログイントークンが無効です.Cognitoトークンを渡すことができません。」。私はドキュメントに従って、実際に何百ものソースが見つかりましたが、認証プロセスのこの部分を過ぎ去っていくことができないと思われる作業コードをまとめようとしました。どんな助けでも大歓迎です。ありがとう!