AWS Cognito: проблема с идентификацией аутентифицированных разработчиков при входе в систему и обновлением токена - PullRequest
1 голос
/ 01 октября 2019

Я реализовал приложение для социальной сети, которое использует Cognito для обновления токена. Но все же я не могу получить свои новые токены. Когда я впервые захожу на свой сервер и получаю от него свой первый идентификатор и токен, токен истекает через некоторое время, и я не могу получить токен. Это моя реализация:

class DeveloperAuthenticatedIdentityProvider : AWSCognitoCredentialsProviderHelper {
    override func token() -> AWSTask<NSString> {
        self.identityId = ProfileDAL.shared.getId()
        return AWSTask(result: NSString(string: ProfileDAL.shared.getToken()))
    }

    override func logins() -> AWSTask<NSDictionary> {
        return super.logins()
    }
}

Я помещаю эти строки в свой viewDidLoad сразу после получения первого токена от моего сервера

let devAuth = DeveloperAuthenticatedIdentityProvider(regionType: MY_REGION, identityPoolId: MY_IDENTITY_POOL_ID, useEnhancedFlow: true, identityProviderManager:nil)
        let credentialsProvider = AWSCognitoCredentialsProvider(regionType: MY_REGION, identityProvider:devAuth)
        let configuration = AWSServiceConfiguration(region: MY_REGION, credentialsProvider:credentialsProvider)
        AWSServiceManager.default().defaultServiceConfiguration = configuration

и сразу после них я использую следующие строки дляполучите мои токены:

AWSMobileClient.default().getTokens { (tokens, error) in
            if let error = error {
                print("Error getting token \(error.localizedDescription)")
            } else if let tokens = tokens {
                print(tokens.accessToken!.tokenString!)
            }
        }

наконец я не могу получить свои новые токены, и это дает мне эту ошибку:

AWSMobileClientError
  ▿ notSignedIn : 1 element
    - message : "User is not signed in, please sign in to use this API."
...