{"id":6569,"date":"2021-01-28T14:09:27","date_gmt":"2021-01-28T08:39:27","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6569"},"modified":"2021-01-28T14:09:27","modified_gmt":"2021-01-28T08:39:27","slug":"sign-in-with-apple","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/","title":{"rendered":"Sign-in With Apple"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">At WWDC 2019( <\/span><span style=\"font-weight: 400;\">WWDC is Apple&#8217;s annual <\/span><b>Worldwide Developers Conference<\/b><span style=\"font-weight: 400;\"> ), Apple provides a convenient, quick way to sign in to apps and websites, i.e. With Apple sign up. Apple Sign-In allows you to set up a user account with a name, checked email address, and unique stable identifiers in your application that allows a user to sign in with their Apple ID to your app.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">-It debuts with ios13<\/span><\/p>\n<p><strong>Ques- Is sign-in with apple mandatory?<\/strong><\/p>\n<p><strong>Ans- <\/strong><span style=\"font-weight: 400;\">For all applications that provide third-party login options to users( Like- Google <\/span><span style=\"font-weight: 400;\">Sign-in, Log in with Amazon, Facebook Login, Sign-in with Twitter, Instagram ) than <\/span><span style=\"font-weight: 400;\">Apple&#8217;s Latest &#8220;Sign in with Apple&#8221; login feature will be mandatory.<\/span><\/p>\n<p><strong>Benefits of Sign-in with Apple:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\"><strong>1.<\/strong> Privacy<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>2.<\/strong> Security<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>3.<\/strong> Support Multiple Platforms( <\/span><span style=\"font-weight: 400;\">It Also works on\u00a0 iOS, macOS, tvOS, and watchOS<\/span><span style=\"font-weight: 400;\"> )<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>4.<\/strong> Non-Repeatable Logins<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 1-<\/strong> Open your existing Xcode Project ( if you don\u2019t have then create a new Xcode<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Project.)<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 2-<\/strong> Configure sign-in with Apple:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">Now, go to Target and select \u2018capability\u2019, then add sign-in with apple Capability <\/span><span style=\"font-weight: 400;\">in Your project.<\/span><\/li>\n<\/ul>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-6570 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3.png\" alt=\"\" width=\"1348\" height=\"976\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3.png 1348w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3-300x217.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3-1024x741.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3-768x556.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/image1-3-624x452.png 624w\" sizes=\"(max-width: 1348px) 100vw, 1348px\" \/><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">After that enable this Sign in with Apple functionality in the App identifier in Appstore connect( Certificates, Identifiers &amp; Profiles Identifiers =&gt; Identifiers =&gt; You app identifier )<\/span><\/li>\n<li><span style=\"font-weight: 400;\">After that add Keys for Apple Sign in (in Certificates, Identifiers &amp; Profiles Identifiers =&gt; Keys=&gt; Create Key )<\/span><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li>Now, Enter the keys name, and don&#8217;t forget to check the Apple Sign In option. After that, press the configure button in the same row and pick the ID of our app<\/li>\n<li>Now, Save the Process and Register the Key after selecting your bundle id.<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\"><strong>Step 3-<\/strong> Now, add sign-in with apple Button in your required view Controller.<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">Firstly import the Authentication Services framework( it is apple framework that h<\/span>andles the authentication, it also includes UI elements)<\/li>\n<li>We can also create our custom sign-in with apple button, but here we create a button using<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">ASAuthorizationAppleIDButton() button<\/pre>\n<ul>\n<li><span style=\"font-weight: 400;\">We have provided a target function for the button that will be called when the button is <\/span><span style=\"font-weight: 400;\">Tapped. Here target function name is \u201c<\/span><span style=\"font-weight: 400;\">appleBtnPressed()<\/span><span style=\"font-weight: 400;\">\u201d.<\/span><\/li>\n<li><span style=\"font-size: 1rem;\">We create a request first and ask the user in requestScopes for a .fullName and .email. This is essentially what we would like to obtain from the Apple ID profile of the user. This is totally optional, and if you really need to, just grab this information.<\/span><\/li>\n<li><span style=\"font-size: 1rem;\">Then we pass our request to get the result of the verification, we can initialise the ASAuthorizationController w<\/span><span style=\"font-size: 1rem;\">ith ASAuthorizationControllerDelegate protocol, we access the delegate functions.<\/span><\/li>\n<\/ul>\n<p><strong>Now, add below code according to previous steps:<\/strong><\/p>\n<pre class=\"lang:default decode:true \">import UIKit\r\n\r\nimport AuthenticationServices\r\n\r\nclass ViewController: UIViewController {\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0override func viewDidLoad() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0super.viewDidLoad()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0createAppleSigninBtn()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0func createAppleSigninBtn() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let appleBtn = ASAuthorizationAppleIDButton()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0appleBtn.frame = CGRect(x: 0, y: 0, width: 250, height: 50)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0appleBtn.center = view.center\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0view.addSubview(appleBtn)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0appleBtn.addTarget(self, action: #selector(appleBtnPressed), for: .touchUpInside)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@objc private func appleBtnPressed() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let appleIDProvider = ASAuthorizationAppleIDProvider()\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let dataRequest = appleIDProvider.createRequest()\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dataRequest.requestedScopes = [.fullName, .email]\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let authorizationController = ASAuthorizationController(authorizationRequests: [dataRequest])\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0authorizationController.delegate = self\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0authorizationController.presentationContextProvider = self\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0authorizationController.performRequests()\r\n\r\n\u00a0\u00a0\u00a0\u00a0}<\/pre>\n<ul>\n<li><span style=\"font-weight: 400;\">After the user has successfully signed in, we get the user credentials within the authorizationController did CompleteWithAuthorization. Check if the credential is ASAuthorizationAppleIDCredential, and save the returned user credentials for the estate.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">For only now, we save user information in user default but it is not secure maybe you will use keychain or maybe your own secure database.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Now handle the didCompleteWithError method according to your requirement. ( like- show an alert )<\/span><\/li>\n<li>For the present the Authorization controller we use <span style=\"font-weight: 400;\">presentationAnchor <\/span><span style=\"font-weight: 400;\">method and we have to provide the anchor window:<\/span><\/li>\n<\/ul>\n<pre class=\"lang:default decode:true \">extension ViewController: ASAuthorizationControllerDelegate, ASAuthorizationControllerPresentationContextProviding {\r\n\r\n\u00a0\u00a0\u00a0\u00a0func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if let appleID_Credential = authorization.credential as?\u00a0 ASAuthorizationAppleIDCredential {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let userIdentifier = appleID_Credential.user\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let fullName = appleID_Credential.fullName\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let email = appleID_Credential.email\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(\"User id is \\(userIdentifier) \\n Full Name is \\(String(describing: fullName)) \\n Email id is \\(String(describing: email))\")\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0let Savedefaults = UserDefaults.standard\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Savedefaults.set(userIdentifier, forKey: \"uIdentifier\")\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Save the UserIdentifier in keychain or your secure server because it is not secure\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Navigate to other VC according to your Project needs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\u00a0\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0func presentationAnchor(for controller: ASAuthorizationController) -&gt; ASPresentationAnchor {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return self.view.window!\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\u00a0\u00a0\r\n\r\n}<\/pre>\n<ul>\n<li><span style=\"font-weight: 400;\">Until now, the user has created a new account, we access the user\u2019s email, name, and other requested data.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">In the last step, we can use the userIdentifier that we obtained from the ASAuthorizationAppleIDCredential object to check the user credential state.<\/span><\/li>\n<li>For a userIdentifier, we can get credential state <span style=\"font-weight: 400;\">by calling getCredentialState(forUserID: completion:) method:<\/span><\/li>\n<\/ul>\n<pre class=\"lang:default decode:true \">let appleSignIDProvider = ASAuthorizationAppleIDProvider()\r\n\r\nappleSignIDProvider.getCredentialState(forUserID: userIdentifier) { (credentialState, error) in\r\n\r\n\u00a0\u00a0\u00a0\u00a0switch credentialState {\r\n\r\n\u00a0\u00a0\u00a0\u00a0case .authorized:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ The Apple ID credential is valid. Show HomeView ui\u2019s\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break\r\n\r\n\u00a0\u00a0\u00a0\u00a0case .revoked:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ The Apple ID credential is revoked. Show SignInView ui\u2019s.\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break\r\n\r\n\u00a0\u00a0\u00a0\u00a0case .notFound:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ No credential was found. Show SignInView ui\u2019s\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break\r\n\r\n\u00a0\u00a0\u00a0\u00a0default:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At WWDC 2019( WWDC is Apple&#8217;s annual Worldwide Developers Conference ), Apple provides a convenient, quick way to sign in to apps and websites, i.e. With Apple sign up. Apple Sign-In allows you to set up a user account with a name, checked email address, and unique stable identifiers in your application that allows a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6571,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[14,573],"class_list":["post-6569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-innovationm","tag-sign-in-with-apple"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sign-in With Apple - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sign-in With Apple - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"At WWDC 2019( WWDC is Apple&#8217;s annual Worldwide Developers Conference ), Apple provides a convenient, quick way to sign in to apps and websites, i.e. With Apple sign up. Apple Sign-In allows you to set up a user account with a name, checked email address, and unique stable identifiers in your application that allows a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-28T08:39:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Sign-in With Apple\",\"datePublished\":\"2021-01-28T08:39:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/\"},\"wordCount\":569,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Sign-in-With-Apple.png\",\"keywords\":[\"InnovationM\",\"Sign-in With Apple\"],\"articleSection\":[\"iOS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/\",\"name\":\"Sign-in With Apple - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Sign-in-With-Apple.png\",\"datePublished\":\"2021-01-28T08:39:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Sign-in-With-Apple.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Sign-in-With-Apple.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sign-in-with-apple\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sign-in With Apple\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sign-in With Apple - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/","og_locale":"en_US","og_type":"article","og_title":"Sign-in With Apple - InnovationM - Blog","og_description":"At WWDC 2019( WWDC is Apple&#8217;s annual Worldwide Developers Conference ), Apple provides a convenient, quick way to sign in to apps and websites, i.e. With Apple sign up. Apple Sign-In allows you to set up a user account with a name, checked email address, and unique stable identifiers in your application that allows a [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/","og_site_name":"InnovationM - Blog","article_published_time":"2021-01-28T08:39:27+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Sign-in With Apple","datePublished":"2021-01-28T08:39:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/"},"wordCount":569,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png","keywords":["InnovationM","Sign-in With Apple"],"articleSection":["iOS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/","url":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/","name":"Sign-in With Apple - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png","datePublished":"2021-01-28T08:39:27+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2021\/01\/Sign-in-With-Apple.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/sign-in-with-apple\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Sign-in With Apple"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6569"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6571"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}