Como nós da Parallels Conquistamos entre com a Apple



Acho que muitos já após a WWDC 2019 ouviram o Sign In with Apple (brevemente SIWA). No artigo, mostrarei quais armadilhas específicas eu tive que enfrentar ao integrar este item ao nosso portal licenciado. Este artigo não é exatamente para aqueles que acabaram de decidir lidar com a SIWA (para eles, forneci vários links para descobrir fatos no final do texto). Neste material, provavelmente, muitos encontrarão respostas para perguntas que possam surgir ao integrar o novo serviço da Apple.

A Apple não permite redirecionamentos personalizados


Na verdade, ainda não vejo a resposta para essa pergunta nos fóruns de desenvolvimento. A linha inferior é: se você deseja usar a API SIWA JS, ou seja, Se você não trabalha com o SDK nativo devido à falta dele por um motivo ou outro (não macOS / iOS ou a versão antiga desses sistemas), precisará do seu próprio portal público, caso contrário nada. Como no portal WWDR, ​​você precisa registrar e confirmar que é o proprietário, seu domínio e somente nele pode anexar redirecionamentos válidos do ponto de vista da Apple:



O que fazer se houver um desejo de interceptar um redirecionamento no aplicativo? Resolvemos esse problema de maneira muito simples: em nosso portal, criamos uma lista de redirecionamentos válidos para nossos aplicativos, que eles solicitam antes de mostrar a página de autorização do SIWA. E basta fazer um redirecionamento do portal para o aplicativo com os dados recebidos da Apple. Simples e alegre.

Problemas de email


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

Em segundo lugar, as informações sobre o nome e o email do usuário são transmitidas apenas uma vez, para o primeiro login do usuário no aplicativo pela Apple, onde o usuário seleciona opções para compartilhar seus dados pessoais.

Sozinhos, esses problemas não são diretamente críticos se a conexão com o perfil social foi criada com sucesso no portal - o ID do usuário é o mesmo e está vinculado ao ID da equipe - ou seja, é um para todos os aplicativos de sua equipe integrados ao SIWA. Mas se o login foi feito pela Apple, e mais adiante ocorreu um erro e a comunicação no portal não foi criada, a única opção é enviar o usuário para appleid.apple.com, desconectar-se do aplicativo e tentar novamente. Na verdade, o problema é resolvido escrevendo o artigo correspondente da KB e um link para ele.

O próximo problema mais desagradável é que a Apple apresentou um novo conceito com email proxy. No nosso caso, se o usuário já estava no portal licenciado com seu sabão real e, ao fazer login pela Apple pela primeira vez, seleciona a opção de ocultar email, uma nova conta com esse email proxy é registrada, na qual obviamente não há licenças, o que coloca o usuário final beco sem saída.

A solução para este problema é bastante simples: o identificador de usuário é o mesmo no SIWA e não depende das opções / aplicativos selecionados, que estão conectados, apenas usamos um script especial para permitir que este pacote da Apple seja transferido para outra conta com um sabão de usuário real e, assim, “restaure nossas compras " Após esse procedimento, o usuário inicia o SIWA para acessar outra conta no portal e tudo funciona corretamente para ele.

Quando entrar no portal da web, não há ícone de aplicativo


Para resolver outro problema, pedimos esclarecimentos aos representantes da Apple, compartilhem nosso conhecimento:

https://forums.developer.apple.com/thread/123054


I.e. o significado é o seguinte: na cabeça do grupo SIWA m. somente o aplicativo macOS / iOS é entregue, no qual os IDs de serviço necessários dos portais já foram adicionados. Consequentemente, para mostrar o ícone no aplicativo principal d. Versões de mídia da App Store testadas pela Apple. O ícone será retirado de lá.

Portanto, se você tiver apenas um portal e não houver aplicativo da App Store, não haverá um ícone bonito, mas poderá sair com o nome do aplicativo - na ausência de mídia, o aplicativo principal obtém essas informações em Descrição do ID do serviço:



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


No momento, esse problema não tem uma solução, exceto para usar muitos grupos, se você tiver 6 identificadores ausentes: 1 aplicativo principal e 5 dependentes; quando você tentar registrar o seguinte, verá esta mensagem:



Criamos grupos para o nosso portal licenciado e para cada um dos aplicativos que operam com este portal. Com relação às restrições aos slots, já lançamos um radar na Apple e aguardamos sua resposta.

Links úteis


O link mais útil, na minha opinião, segundo o qual eu fiz tudo em essência. A doca útil da Apple está aqui .

Aproveite! Perguntas, pensamentos, idéias e sugestões são aceitas nos comentários.

Source: https://habr.com/ru/post/pt469499/


All Articles