Comment nous avons conquis Parallels avec Apple



Je pense que beaucoup déjà après la WWDC 2019 ont entendu se connecter avec Apple (brièvement SIWA). Dans l'article, je vais vous dire quels pièges spécifiques j'ai dû affronter lors de l'intégration de cet article dans notre portail sous licence. Cet article n'est pas tout à fait pour ceux qui viennent de décider de traiter avec SIWA (pour eux, j'ai donné un certain nombre de liens d'information à la fin du texte). Dans ce document, très probablement, beaucoup trouveront des réponses aux questions qui peuvent survenir lors de l'intégration du nouveau service Apple.

Apple n'autorise pas les redirections personnalisées


En fait, je ne vois toujours pas la réponse à cette question sur les forums de développement. L'essentiel est: si vous souhaitez utiliser l'API SIWA JS, c'est-à-dire Si vous ne travaillez pas avec le SDK natif en raison de son absence pour une raison ou une autre (pas macOS / iOS ou l'ancienne version de ces systèmes), alors vous avez besoin de votre propre portail public, sinon rien. Parce que sur le portail WWDR, ​​vous devez vous inscrire et confirmer que vous êtes le propriétaire, votre domaine et seulement sur celui-ci, vous pouvez attacher des redirections valides du point de vue d'Apple:



Que faire en cas de souhait d'intercepter une redirection dans l'application? Nous avons résolu ce problème très simplement: sur notre portail, nous avons créé une liste de redirections valides pour nos applications, qu'ils commandent avant d'afficher la page d'autorisation SIWA. Et faites simplement une redirection du portail vers l'application avec les données reçues d'Apple. Simple et joyeux.

Problèmes de messagerie


Voyons comment nous avons résolu les problèmes de courrier électronique de l'utilisateur. Tout d'abord, il n'y a pas d'API REST qui vous permet d'obtenir ces informations du backend - seul le client reçoit ces données et peut les transmettre avec le code d'autorisation.

Deuxièmement, les informations sur le nom et l'e-mail de l'utilisateur ne sont transmises qu'une seule fois, au tout premier utilisateur se connectant à l'application via Apple, où l'utilisateur sélectionne les options de partage de ses données personnelles.

En eux-mêmes, ces problèmes ne sont pas directement critiques si la connexion au profil social a été créée avec succès sur le portail - l'ID utilisateur est le même et est lié à l'ID d'équipe - c'est-à-dire c'est une pour toutes les applications de votre équipe intégrées à SIWA. Mais si la connexion a été établie via Apple, puis qu'une erreur s'est produite et que la communication sur le portail n'a pas été créée, la seule option est d'envoyer l'utilisateur à appleid.apple.com, de se déconnecter de l'application et de réessayer. En fait, le problème est résolu en écrivant l'article correspondant de la base de connaissances et un lien vers celui-ci.

Le prochain problème plus désagréable est qu'Apple a proposé un nouveau concept avec l'e-mail proxy. Dans notre cas, si l'utilisateur était déjà sur le portail sous licence avec son vrai savon et que la première connexion via Apple sélectionne l'option de masquer les e-mails, un nouveau compte avec cet e-mail proxy est enregistré, dans lequel il n'y a évidemment pas de licences, ce qui place l'utilisateur final dans impasse.

La solution à ce problème est assez simple: l'ID utilisateur est le même dans SIWA et ne dépend pas des options / applications sélectionnées, qui est connectée, alors nous utilisons simplement un script spécial pour nous permettre de basculer ce bundle d'Apple vers un autre compte avec un véritable savon utilisateur et ainsi "restaurer nos achats" ". Après cette procédure, l'utilisateur démarre via SIWA pour accéder à un autre compte sur le portail et tout fonctionne correctement pour lui.

Lorsque vous vous connectez via le portail Web, il n'y a pas d'icône d'application


Pour résoudre un autre problème, nous avons demandé des éclaircissements aux représentants d'Apple, partagez nos connaissances:

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


C'est-à-dire la signification est la suivante: à la tête du groupe SIWA m. seule l'application macOS / iOS est livrée, dans laquelle les ID de service nécessaires des portails sont déjà ajoutés. En conséquence, pour afficher l'icône dans l'application principale d. Versions App Store des supports testées par Apple. L'icône sera prise à partir de là.

Par conséquent, si vous ne disposez que d'un portail et qu'il n'y a pas d'application sur l'App Store, il n'y aura pas de belle icône, mais vous pouvez sortir avec le nom de l'application - en l'absence de média, l'application principale prend ces informations de l'ID du service de description:



Le nombre d'éléments du groupe SIWA est limité à 5


Ce problème n'a pas de solution pour le moment, sauf pour utiliser un grand nombre de groupes, s'il vous manque 6 identifiants: 1 application principale et 5 dépendants, puis lorsque vous essayez d'enregistrer les éléments suivants, vous verrez ce message:



Nous avons créé des groupes pour notre portail sous licence et pour chacune des applications qui fonctionnent avec ce portail. Concernant les restrictions sur les slots, nous avons déjà lancé un radar chez Apple et attendons leur réponse.

Liens utiles


Le lien le plus utile, à mon avis, selon lequel j'ai tout fait essentiellement. Le dock utile d'Apple est ici .

Profitez-en! Les questions, réflexions, idées et suggestions sont acceptées dans les commentaires.

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


All Articles