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.
Introdução
Se você não conhece o conceito do conector ou não sabe como adicionar este conector à sua experiência de login, 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 Test
eio.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 endereços de email dos usuários após eles já terem feito login com 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 de conta do Apple ID e remover seu aplicativo da seção "Sign in with Apple". Isso pode ser feito selecionando "Parar de usar 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 veem durante seu primeiro login deve ser semelhante a esta:

Veja a discussão de desenvolvedores aqui.
Testar conector Apple
É isso. O conector Apple deve estar disponível tanto em aplicativos web quanto nativos. Não se esqueça de Habilitar conector social na experiência de login.