2017-06-01 132 views
0

我想使用從我的身份提供者檢索到的訪問令牌來獲取認證身份。有點像在here。這個部分的AWS SDK似乎有問題,如here所述,所以我試圖找到解決方法。無法使用AWS Cognito和訪問令牌登錄

當我跑我收到以下錯誤代碼:

Task result: nil Error Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=8 "(null)" UserInfo={__type=NotAuthorizedException, message=Invalid login token. Issuer doesn't match providerName}

下面我的代碼,我懷疑這個問題是我設立在這裏的登錄方式:

idInput? .logins = [「provider_url」:idToken] //我需要其他參數嗎?

代碼:

func congitoAuthentication(accessToken : String, idToken : String, refreshToken : String) { 
    let credentialProvider = AWSCognitoCredentialsProvider(regionType: .EUWest1, identityPoolId: "eu-west-2:XXXX") 

    let serviceConfig = AWSServiceConfiguration(region: .EUWest1, credentialsProvider: credentialProvider) 

    AWSServiceManager.default().defaultServiceConfiguration = serviceConfig 
    let idInput = AWSCognitoIdentityGetIdInput() 
    idInput?.identityPoolId = "eu-west-2:XXXX" 
    idInput?.logins = ["provider_url": idToken] 

    let identity = AWSCognitoIdentity.default() 

    let task = identity.getId(idInput!).continueWith(block: { (task) -> Any? in 
     if let error = task.error as? NSError { 
      print("Error \(error)") 
      return nil 
     } 

     return nil 
    }) 
} 

回答

0

你的 「PROVIDER_URL」 的類型是 「cognito-idp.xxx」?看起來你是通過一個無效的「provider_url」

+0

謝謝你的回覆。你能澄清你的意思嗎?我是否使用不正確的字典鍵爲「provider_url」?你現在怎麼認爲它是一個無效的「provider_url」?謝謝 ! – mm24

+0

由於錯誤消息。不需要在這裏發佈完整的提供者網址,但是什麼類型的網址是?它開始於cognito-idp?用戶認知池也是如此?或者是聯邦提供商? – UXDart

相關問題