2016-08-05 6 views
0

Я пытаюсь использовать учетные данные Facebook для входа в систему AWS. Я установил идентификатор федерации с помощью Facebook в качестве моего поставщика социальных услуг на Amazon Cognito, но по какой-то причине он не аутентифицируется. Документы на Amazon не обновлены, поэтому я не уверен, что делать.ios swift AWS cognito и Facebook Аутентификация

Ниже некоторые быстры код из приложения Иос:

let token = FBSDKAccessToken.currentAccessToken().tokenString 

    let provider = MyProvider(tokens: [AWSIdentityProviderFacebook: token]) 


    let credentialsProvider = AWSCognitoCredentialsProvider(regionType: region, identityPoolId: poolId, identityProviderManager: provider) 


    let configuration = AWSServiceConfiguration(region: region, credentialsProvider:credentialsProvider) 

    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration 

    let id = credentialsProvider.getIdentityId() 

Вот класс MyProvider:

import Foundation 
import AWSCognitoIdentityProvider 

class MyProvider:NSObject, AWSIdentityProviderManager{ 
    var tokens : [NSString : NSString]? 
    init(tokens: [NSString : NSString]) 
    { 
     self.tokens = tokens 
    } 
    @objc func logins() -> AWSTask { 

     return AWSTask(result: tokens) 
    } 
} 

Я могу получить токен от Facebook и входа в систему, но когда я прохожу этот token для Cognito. Я получаю сообщение об ошибке «NotAuthorizedException». «Токен не от поддерживаемого поставщика этого пула идентификаторов». Идентификатор пула и область, которую я передаю AWSCognitoCredentialsProvider, соответствуют тем, которые принадлежат Amazon Cognito, метод, который я определил в MyProvider, вызывается. Если у кого-то есть работа, пожалуйста, поделитесь тем, что вы сделали, и это заработало. Буду признателен за любые советы и помощь!

ответ

0

Решила мою проблему как-то. Все, что я сделал, было удалено из моего пула идентификаторов и приложения для Facebook и создано новые. Сейчас он работает нормально.

0

Ключ в вашей логинской карте должен быть graph.facebook.com. Попробуйте использовать AWSCognitoLoginProviderKey.Facebook.rawValue вместо AWSIdentityProviderFacebook

+1

AWSCognitoLoginProviderKey.Facebook.rawValue устарел – plot

+0

Привет, вы внедрили логин facebook через AWS. Я изо всех сил пытаюсь выполнить это, пожалуйста, помогите мне сделать это. – vijay

+0

Исключительное количество кода и настроек, необходимых для использования Cognito - это ум. Я обнаружил, что Firebase будет намного умнее и проще интегрироваться в быстрый. – Annjawn

Смежные вопросы