Я реализовал приложение для социальной сети, которое использует 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."