As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurando o Facebook como um IdP de grupos de identidades
Os grupos de identidade do Amazon Cognito se integram ao Facebook para fornecer autenticação federada aos usuários da aplicação móvel. Esta seção explica como inscrever e configurar a aplicação com o Facebook como IdP.
Configurar o Facebook
Registre seu aplicativo no Facebook antes de autenticar os usuários do Facebook e interagir com o FacebookAPIs.
O Portal de desenvolvedores do Facebook
nota
A federação de grupos de identidade do Amazon Cognito não é compatível com o login limitado do Facebook
Configurar o Facebook
-
No Facebook Developers portal
, faça login com as credenciais do Facebook. -
No menu Apps, selecione Add a New App.
-
Selecione uma plataforma e conclua o processo de início rápido.
Android
Para obter mais informações sobre como integrar aplicativos Android ao Login do Facebook, consulte o Guia de conceitos básicos do Facebook
iOS – Objective-C
Para obter mais informações sobre como integrar aplicativos iOS Objective-C ao Login do Facebook, consulte o Guia de conceitos básicos do Facebook
iOS – Swift
Para obter mais informações sobre como integrar aplicativos iOS Swift ao Login do Facebook, consulte o Guia de conceitos básicos do Facebook
JavaScript
Para obter mais informações sobre como integrar aplicativos JavaScript da web com o Login do Facebook, consulte o Guia de introdução do Facebook
Unity
Para obter mais informações sobre como integrar aplicações Unity ao Login do Facebook, consulte o Guia de conceitos básicos do Facebook
Xamarin
Para adicionar a autenticação do Facebook, primeiro siga o fluxo apropriado abaixo para integrar o Facebook SDK ao seu aplicativo. Os grupos de identidades do Amazon Cognito usam o token de acesso do Facebook para gerar um identificador exclusivo do usuário que está associado a uma identidade do Amazon Cognito.
Configurar um provedor de identidades no console de bancos de identidades do Amazon Cognito
Use o procedimento a seguir para configurar seu provedor de identidades.
Como adicionar um provedor de identidades (IdP) Facebook
-
Selecione Bancos de identidades no console do Amazon Cognito
. Selecione um banco de identidades. -
Selecione a guia Acesso do usuário.
-
Selecione Adicionar provedor de identidade.
-
Selecione Facebook.
-
Insira o ID do aplicativo do OAuth projeto que você criou no Meta for Developers
. Para ter mais informações, consulte Login do Facebook nos documentos do Meta for Developers. -
Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina Configurações de perfil.
-
Você pode atribuir aos usuários desse IdP o Perfil padrão que você configurou ao definir seu Perfil autenticado ou Escolher perfil com regras.
-
Se você escolheu Escolher perfil com regras, insira a Declaração de origem da autenticação do usuário, o Operador pelo qual você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.
-
Selecione uma Resolução de perfil. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu Perfil autenticado.
-
-
-
Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure Atributos para controle de acesso.
-
Para não aplicar nenhuma tag de entidade principal, selecione Inativo.
-
Para aplicar tags de entidade principal com base em declarações
sub
eaud
, selecione Usar mapeamentos padrão. -
Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione Usar mapeamentos personalizados. Depois, insira a Chave de tag que você deseja obter de cada declaração e representar em uma tag.
-
-
Selecione Save Changes (Salvar alterações).
Uso do Facebook
Android
Para adicionar a autenticação do Facebook, primeiro siga o guia do Facebook
Depois de autenticar seu usuário com o FacebookSDK, adicione o token de sessão ao provedor de credenciais do Amazon Cognito.
Facebook SDK 4.0 ou posterior:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);
Facebook SDK antes da versão 4.0:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);
O processo de login do Facebook inicializa uma sessão única em seu. SDK O objeto de sessão do Facebook contém um OAuth token que o Amazon Cognito usa para gerar AWS credenciais para seu usuário final autenticado. O Amazon Cognito também usa o token para verificar se existe um usuário no banco de dados de usuário que corresponda a essa identidade específica do Facebook. Se o usuário já existir, ele API retornará o identificador existente. Caso contrário, API retornará um novo identificador. O cliente armazena SDK automaticamente os identificadores em cache no dispositivo local.
nota
Depois de definir o mapa de logins, faça uma chamada para refresh
ou get
para recuperar as AWS credenciais.
iOS – Objective-C
Para adicionar a autenticação do Facebook, primeiro siga o guia do Facebook
Para fornecer o token de acesso do Facebook ao Amazon Cognito, implemente o protocolo AWSIdentityProviderManager
Ao implementar o método logins
, retorne um dicionário contendo AWSIdentityProviderFacebook
. Esse dicionário atua como a chave, ao passo que o token de acesso atual do usuário autenticado do Facebook atua como o valor, conforme mostrado no exemplo de código a seguir.
- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins { FBSDKAccessToken* fbToken = [FBSDKAccessToken currentAccessToken]; if(fbToken){ NSString *token = fbToken.tokenString; return [AWSTask taskWithResult: @{ AWSIdentityProviderFacebook : token }]; }else{ return [AWSTask taskWithError:[NSError errorWithDomain:@"Facebook Login" code:-1 userInfo:@{@"error":@"No current Facebook access token"}]]; } }
Ao instanciar o AWSCognitoCredentialsProvider
, passe a classe que implementa AWSIdentityProviderManager
como o valor de identityProviderManager
no construtor. Para obter mais informações, acesse a página de AWSCognitoCredentialsProvider
iOS – Swift
Para adicionar a autenticação do Facebook, primeiro siga o guia do Facebook
nota
A federação de grupos de identidade do Amazon Cognito não é compatível com o login limitado do Facebook
Para fornecer o token de acesso do Facebook ao Amazon Cognito, implemente o protocolo AWSIdentityProviderManager
Na implementação do método logins
, retorne um dicionário contendo AWSIdentityProviderFacebook
. Esse dicionário atua como a chave, ao passo que o token de acesso atual do usuário autenticado do Facebook atua como o valor, conforme mostrado no exemplo de código a seguir.
class FacebookProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { if let token = AccessToken.current?.authenticationToken { return AWSTask(result: [AWSIdentityProviderFacebook:token]) } return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"])) } }
Ao instanciar o AWSCognitoCredentialsProvider
, passe a classe que implementa AWSIdentityProviderManager
como o valor de identityProviderManager
no construtor. Para obter mais informações, acesse a página de AWSCognitoCredentialsProvider
JavaScript
Para adicionar a autenticação do Facebook, siga o Login do facebook para a Web
Depois de autenticar seu usuário com o FacebookSDK, adicione o token de sessão ao provedor de credenciais do Amazon Cognito.
FB.login(function (response) { // Check if the user logged in successfully. if (response.authResponse) { console.log('You are now logged in.'); // Add the Facebook access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } else { console.log('There was a problem logging you in.'); } });
O Facebook SDK obtém um OAuth token que o Amazon Cognito usa para AWS gerar credenciais para seu usuário final autenticado. O Amazon Cognito também usa o token para fazer a verificação em relação ao banco de dados de usuário quanto à existência de um usuário que corresponda a essa identidade específica do Facebook. Se o usuário já existir, ele API retornará o identificador existente. Caso contrário, um novo identificador é retornado. Os identificadores são automaticamente armazenados em cache pelo cliente SDK no dispositivo local.
nota
Depois de configurar o mapa de logins, chame refresh
ou get
para obter as credenciais. Para obter um exemplo de código, consulte “Caso de uso 17, Integrando grupos de usuários com a Identidade Cognito” no JavaScript README arquivo.
Unity
Para adicionar a autenticação do Facebook, primeiro siga o guia do FacebookFB
para gerar um identificador exclusivo do usuário que está associado a uma identidade do Amazon Cognito.
Depois de autenticar seu usuário com o FacebookSDK, adicione o token de sessão ao provedor de credenciais do Amazon Cognito:
void Start() { FB.Init(delegate() { if (FB.IsLoggedIn) { //User already logged in from a previous session AddFacebookTokenToCognito(); } else { FB.Login ("email", FacebookLoginCallback); } }); } void FacebookLoginCallback(FBResult result) { if (FB.IsLoggedIn) { AddFacebookTokenToCognito(); } else { Debug.Log("FB Login error"); } } void AddFacebookTokenToCognito() { credentials.AddLogin ("graph.facebook.com", AccessToken.CurrentAccessToken.TokenString); }
Antes de usar FB.AccessToken
, chame FB.Login()
e verifique se FB.IsLoggedIn
é verdadeiro.
Xamarin
Xamarin para Android:
public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback < LoginResult > () { HandleSuccess = loginResult = > { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = > { //throw error message }, HandleError = loginError = > { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List < string > { "public_profile" }); }
Xamarin para iOS:
public void InitializeFacebook() { LoginManager login = new LoginManager(); login.LogInWithReadPermissions(readPermissions.ToArray(), delegate(LoginManagerLoginResult result, NSError error) { if (error != null) { //throw error message } else if (result.IsCancelled) { //throw error message } else { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new view controller } }); }