{"id":38651,"date":"2019-10-31T22:25:04","date_gmt":"2019-10-31T19:25:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-v-parallels-pokoryali-sign-in-with-apple\/"},"modified":"2019-10-31T22:25:04","modified_gmt":"2019-10-31T19:25:04","slug":"kak-my-v-parallels-pokoryali-sign-in-with-apple","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/kak-my-v-parallels-pokoryali-sign-in-with-apple","title":{"rendered":"How we at Parallels conquered Sign In with Apple","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/3cb54b15c81d639f145c104431c583e5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI think many people are already familiar with Sign In with Apple (briefly SIWA) since WWDC 2019. In this article, I will discuss the specific pitfalls encountered when integrating this feature into our licensed portal. This article is not quite for those just starting to figure out SIWA (I have provided a series of introductory links at the end of the text for them). In this material, many will likely find answers to questions that may arise during the integration of Apple's new service.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Apple does not allow custom redirects<\/h3>\n<p>\nActually, I still do not see an answer to this question on developer forums. The essence is as follows: if you want to use the SIWA JS API, i.e., not work through the native SDK due to various reasons (not macOS\/iOS or an older version of those systems), you will need your own public portal; otherwise, it's impossible. Because on the WWDR portal, you need to register and confirm that you own your domain, and only then can you attach the redirects that Apple allows.<\/p>\n<p><img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/31060bbdfe0b2cf55505a42cdf8aa6fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSo what do you do if you want to intercept the redirect in the application? We solved this problem quite simply: we created a list of allowed redirects for our applications on our portal, which they request before displaying the SIWA authorization page. We then simply redirect from the portal to the application with the data received from Apple. Simple and straightforward.<\/p>\n<h3>Email issues<\/h3>\n<p>\nLet's consider how we addressed the user's email issues. Firstly, there is no REST API that allows retrieving this info from the backend \u2014 only the client gets this data and can transmit it along with the authorization code. <\/p>\n<p>Secondly, the user's name and email information is only transmitted once, at the user's first login to the application via Apple, where the user selects options for sharing their personal data. <\/p>\n<p>These problems are not critical by themselves, provided that the connection with the social profile was successfully established on the portal\u2014the user identifier is the same and linked to the Team ID, meaning it's the same for all applications of your team integrated with SIWA. However, if the login was done through Apple, and then an error occurred along the way preventing the connection from being established on the portal, the only option is to send the user to appleid.apple.com, sever the connection with the application, and try again. Essentially, the problem can be resolved by writing a relevant KB article and linking to it.<\/p>\n<p>The next more unpleasant issue is related to Apple's new concept with proxy email. In our case, if the user had already been on the licensing portal with their real email and chooses the option to hide the email during their first login through Apple, a new account is registered with this proxy email, which obviously contains no licenses, leaving the end user confused. <\/p>\n<p>The solution to this problem is fairly simple: since the user identifier is the same in SIWA and does not depend on the selected options\/application for sign in, we simply allow switching the connection from Apple to another account with the user's real email using a special script, thereby 'restoring their purchases.' After this procedure, the user begins to access a different account on the portal via SIWA, and everything works correctly for them.<\/p>\n<h3>When signing in through the web portal, there is no application icon.<\/h3>\n<p>\nTo solve another issue, we reached out for clarification from Apple representatives and are sharing the insights we gained:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/forums.developer.apple.com\/thread\/123054\">https:\/\/forums.developer.apple.com\/thread\/123054<\/a><\/noindex><br \/>\n<img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/125b992274c00bba938e06f4c0f2860c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn other words, the point is as follows: at the head of the SIWA group, there can only be a macOS\/iOS application, into which the necessary service IDs of the portals are added. Accordingly, for the icon to be displayed for the main application, there must be App Store versions of the media that have passed Apple's review. The icon will be taken from there. <\/p>\n<p>Consequently, if you only have a portal and no App Store application, there will be no beautiful icon, but you can manage with the application name\u2014if there is no media for the main application, this information is taken from the Description of the service ID:<br \/>\n<img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/e762820861b0f6611cde7b64ad02e316.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/aa2f68e7898013c33f7cc3d42b7d3788.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>The number of elements in the SIWA group is limited to 5.<\/h3>\n<p>\nCurrently, there is no solution to this problem other than using multiple groups. If you are short on 6 identifiers: 1 main application and 5 dependent ones, you will see the following message when trying to register the next one:<\/p>\n<p><img decoding=\"async\" alt=\"How we at Parallels conquered Sign In with Apple\" src=\"\/wp-content\/uploads\/2019\/10\/852962ce93d4fafb85827af1128aea38.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWe have created groups for our license portal and for each of the applications that operate with this portal. Regarding the slot limitation, we have already raised this issue with Apple and are awaiting their response.<\/p>\n<h3>Useful links<\/h3>\n<p>\nMost useful <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.okta.com\/blog\/2019\/06\/04\/what-the-heck-is-sign-in-with-apple\">link<\/a><\/noindex>, in my opinion, which I essentially followed. A somewhat useful document from Apple <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.apple.com\/sign-in-with-apple\/get-started\">here<\/a><\/noindex>.<\/p>\n<p>Enjoy! Questions, thoughts, ideas, and suggestions are welcome in the comments.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/parallels\/blog\/469499\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0443\u043c\u0430\u044e \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 WWDC 2019 \u043d\u0430 \u0441\u043b\u0443\u0445\u0443 Sign In with Apple (\u043a\u0440\u0430\u0442\u043a\u043e SIWA). \u0412 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043a\u0430\u043c\u043d\u044f\u043c\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0448\u0442\u0443\u043a\u0435\u043d\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u0442\u0430\u043b. \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 SIWA (\u0434\u043b\u044f \u043d\u0438\u0445 \u044f \u0434\u0430\u043b \u0440\u044f\u0434 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u0447\u0435\u043a \u0432 \u043a\u043e\u043d\u0446\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28993,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38651","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0443\u043c\u0430\u044e \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 WWDC 2019 \u043d\u0430 \u0441\u043b\u0443\u0445\u0443.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/kak-my-v-parallels-pokoryali-sign-in-with-apple\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0432 Parallels \u043f\u043e\u043a\u043e\u0440\u044f\u043b\u0438 Sign In with Apple | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0443\u043c\u0430\u044e \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 WWDC 2019 \u043d\u0430 \u0441\u043b\u0443\u0445\u0443.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/kak-my-v-parallels-pokoryali-sign-in-with-apple\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:25:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:25:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 How we at Parallels conquered Sign In with Apple | ProHoster","description":"I think many are already familiar with it after WWDC 2019.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/kak-my-v-parallels-pokoryali-sign-in-with-apple","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0432 Parallels \u043f\u043e\u043a\u043e\u0440\u044f\u043b\u0438 Sign In with Apple | ProHoster","og:description":"\u0414\u0443\u043c\u0430\u044e \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 WWDC 2019 \u043d\u0430 \u0441\u043b\u0443\u0445\u0443.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/kak-my-v-parallels-pokoryali-sign-in-with-apple","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:25:04+00:00","article:modified_time":"2019-10-31T19:25:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38651","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 22:55:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:05:22","updated":"2026-01-23 22:55:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=38651"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38651\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/28993"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=38651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=38651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=38651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}