Como nós da Parallels conquistamos o Sign In with Apple

Como nós da Parallels conquistamos o Sign In with Apple

Acho que muitas pessoas já ouviram Sign In with Apple (SIWA, abreviado) depois da WWDC 2019. Neste artigo contarei quais armadilhas específicas tive que enfrentar ao integrar isso em nosso portal de licenciamento. Este artigo não é realmente para aqueles que acabaram de decidir entender o SIWA (para eles forneci vários links educacionais no final do texto). Neste material, muito provavelmente, muitos encontrarão respostas para dúvidas que possam surgir ao integrar o novo serviço da Apple.

A Apple não permite redirecionamentos personalizados

Na verdade, ainda não vejo resposta para essa pergunta nos fóruns de desenvolvedores. A questão é esta: se você quiser usar a API SIWA JS, ou seja, não funciona através do SDK nativo por falta de um por um motivo ou outro (não macOS/iOS ou uma versão antiga desses sistemas), então você precisa de seu próprio portal público, caso contrário não há outra maneira. Porque no portal WWDR você precisa se registrar e confirmar que é o proprietário do seu domínio, e somente nele você pode anexar redirecionamentos aceitáveis ​​​​do ponto de vista da Apple:

Como nós da Parallels conquistamos o Sign In with Apple

O que você deve fazer se quiser interceptar um redirecionamento em um aplicativo? Resolvemos este problema de forma extremamente simples: criamos em nosso portal uma lista de redirecionamentos aceitáveis ​​para nossas aplicações, que eles solicitam antes de exibir a página de autorização do SIWA. E simplesmente redirecionamos do portal para o aplicativo com os dados recebidos da Apple. Simples e irritado.

Problemas com e-mail

Vejamos como resolvemos problemas com o e-mail do usuário. Em primeiro lugar, não existe uma API REST que permita obter essas informações do backend - apenas o cliente recebe esses dados e pode transmiti-los junto com o código de autorização.

Em segundo lugar, as informações sobre o nome e e-mail do usuário são transmitidas apenas uma vez, no primeiro login do usuário no aplicativo através da Apple, onde o usuário seleciona opções de compartilhamento de seus dados pessoais.

Por si só, estes problemas não são diretamente críticos se a ligação com o perfil social foi criada com sucesso no portal - o ID do utilizador é o mesmo e está ligado ao ID da Equipa - ou seja, é o mesmo para todos os aplicativos integrados ao SIWA da sua equipe. Mas se o login foi feito através da Apple, e mais adiante ocorreu um erro no caminho e a conexão no portal não foi criada, a única opção é enviar o usuário para appleid.apple.com, interromper a conexão com o aplicativo e tente novamente. Na verdade, o problema pode ser resolvido escrevendo o artigo apropriado da base de conhecimento e criando um link para ele.

O próximo problema mais desagradável está relacionado ao fato de a Apple ter criado um novo conceito de e-mail proxy. No nosso caso, se o usuário já acessou o portal de licenciamento com seu sabonete real e, ao fazer login pela primeira vez pela Apple, seleciona a opção de ocultar o e-mail, uma nova conta é cadastrada neste proxy e- mail, que obviamente não contém nenhuma licença, o que deixa o usuário final em um beco sem saída.

A solução para este problema é bastante simples: porque. Se o ID do usuário for o mesmo no SIWA e não depender das opções/aplicativos selecionados no qual o login é feito, então simplesmente utilizamos um script especial para permitir que você mude esta conexão da Apple para outra conta com o real do usuário. sabão e assim “restaurar suas compras” " Após esse procedimento, o usuário passa a acessar outra conta no portal através do SIWA e tudo funciona corretamente para ele.

Não há ícone do aplicativo ao fazer login pelo portal da web

Para resolver outro problema, recorremos aos representantes da Apple para esclarecimentos e compartilhar nosso conhecimento:

https://forums.developer.apple.com/thread/123054
Como nós da Parallels conquistamos o Sign In with Apple

Aqueles. o significado é o seguinte: à frente do grupo SIWA m.b. É entregue apenas a aplicação macOS/iOS, na qual já estão adicionados os IDs de serviço necessários dos portais. Assim, para que o ícone do aplicativo principal seja mostrado. versões publicadas na App Store com mídia verificada pela Apple. O ícone será retirado daí.

Assim, se você tiver apenas um portal e nenhum aplicativo da App Store, não terá um ícone bonito, mas poderá se safar com o nome do aplicativo - se o aplicativo principal não tiver mídia, esta informação é retirado do ID do serviço Descrição:
Como nós da Parallels conquistamos o Sign In with Apple
Como nós da Parallels conquistamos o Sign In with Apple

O número de elementos num grupo SIWA é limitado a 5

Não há solução para este problema no momento a não ser usar muitos grupos, se faltarem 6 identificadores: 1 aplicação principal e 5 dependentes, então ao tentar cadastrar o próximo você verá esta mensagem:

Como nós da Parallels conquistamos o Sign In with Apple

Criamos grupos para nosso portal de licenças e para cada uma das aplicações que interagem com este portal. Em relação às restrições de slots, já abrimos um radar com a Apple e aguardamos a resposta deles.

Links úteis

Muito útil ligação, na minha opinião, segundo o qual fiz tudo essencialmente. Dock semi-útil da Apple aqui.

Aproveitar! Perguntas, pensamentos, ideias e sugestões são bem-vindos nos comentários.

Fonte: habr.com

Adicionar um comentário