Configurar login social com Apple
O conector oficial do Logto para login social com Apple.
Este guia assume que você tem um entendimento básico dos Conectores (Connectors) do Logto. Para aqueles que não estão familiarizados, consulte o guia de Conectores para começar.
Primeiros passos
Se você não conhece o conceito de conector ou não sabe como adicionar este conector em Sign-in & account > Sign-up and sign-in, consulte o tutorial do Logto.
O login com Apple é obrigatório para a AppStore se você tiver outros métodos de login social em seu aplicativo. Ter o login com Apple em dispositivos Android é ótimo se você também fornecer um aplicativo Android.
Você precisa se inscrever no Apple Developer Program antes de continuar.
Ativar o login com Apple para seu aplicativo
Mesmo que você queira implementar o login com Apple apenas em um aplicativo web, ainda precisará ter um aplicativo existente que abrace o ecossistema da AppStore (ou seja, ter um ID de aplicativo válido).
Você pode fazer isso via Xcode -> Configurações do projeto -> Assinatura & Capacidades, ou visitar Certificates, Identifiers & Profiles.
Veja a seção "Enable an App ID" nos documentos oficiais da Apple para mais informações.
Criar um identificador
- Visite Certificates, Identifiers & Profiles, então clique no botão "+" ao lado de "Identifier".
- Na página "Register a new identifier", escolha "Services IDs" e clique em "Continue".
- Preencha "Description" e "Identifier" (Ex.:
Logto Testeio.logto.test), então clique em "Continue". - Verifique as informações e clique em "Register".
Ativar o login com Apple para seu identificador
Clique no identificador que você acabou de criar. Marque "Sign in with Apple" na página de detalhes e clique em "Configure".
No modal que se abre, selecione o ID do aplicativo que você acabou de habilitar o login com Apple.
Digite o domínio da sua instância Logto sem protocolo e porta, por exemplo, your.logto.domain; em seguida, insira a "Return URL" (ou seja, URI de redirecionamento), que é a URL do Logto com /callback/${connector_id}, por exemplo, https://your.logto.domain/callback/apple-universal. Você pode obter o connector_id gerado aleatoriamente após criar o conector Apple no Admin Console.
Clique em "Next" e depois em "Done" para fechar o modal. Clique em "Continue" no canto superior direito, depois clique em "Save" para salvar sua configuração.
A Apple NÃO permite URLs de retorno com protocolo HTTP e domínio localhost.
Se você quiser testar localmente, precisará editar o arquivo /etc/hosts para mapear localhost para um domínio personalizado e configurar um ambiente HTTPS local. O mkcert pode ajudá-lo a configurar o HTTPS local.
Configurar escopo
Para obter o email do usuário da Apple, você precisa configurar o escopo para incluir email. Para obter tanto o email quanto o nome, você pode usar name email como escopo. Veja os documentos oficiais da Apple para mais informações.
O usuário pode optar por ocultar seu endereço de email do seu aplicativo. Nesse caso, você não poderá recuperar o endereço de email real. Um endereço de email como [email protected] será retornado em vez disso.
Armadilhas ao configurar escopo
Se você configurou seu aplicativo para solicitar os endereços de email dos usuários depois que eles já fizeram login com a Apple, não será possível recuperar os endereços de email desses usuários existentes, mesmo que eles façam login novamente usando o Apple ID. Para resolver isso, você precisa instruir seus usuários a visitarem a página de gerenciamento da conta Apple ID e remover seu aplicativo da seção "Sign in with Apple". Isso pode ser feito selecionando "Parar de usar o Apple Sign In" na página de detalhes do seu aplicativo.
Por exemplo, se seu aplicativo solicitar tanto o email quanto o nome dos usuários (escopo email name), a tela de consentimento que novos usuários verão durante o primeiro login deve ser semelhante a esta:
Veja a discussão de desenvolvedores aqui.
Testar o conector Apple
É isso. O conector Apple deve estar disponível tanto em aplicativos web quanto nativos. Não se esqueça de habilitar o conector social em Sign-up and sign-in.