ios swift5 “Sign in with Apple“(使用苹果登录)怎样接入(第三方登录 ...

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481

截图


1.在开发者网站的app id中添加Sign in with Apple功能

      1.1 如果你新建app id,记得在新建的时间就选中Sign in with Apple功能


1.2 如果app已经上线了,后面再必要加苹果登录的功能,也可以在app id的配置中加这个功能,只是勾选Sign in with Apple点击Save后,profilex必要重新天生

    2.在Xcode中添加Sign in with Apple功能


3.代码:只有第一次登录的时间可以获取到用户名

  1. import AuthenticationServices
  2. //MARK: Sign in with Apple 苹果第三方登录
  3. extension LoginVC{
  4.     func addAppleLoginBtn(){
  5.         let appleLoginButton = ASAuthorizationAppleIDButton(type: .signIn, style: .black)
  6.         view.addSubview(appleLoginButton)
  7.         appleLoginButton.snp.makeConstraints { make in
  8.             make.top.equalTo(fbLoginButton.snp_bottomMargin).offset(40*GLratioHeight)
  9.             make.centerX.equalToSuperview()
  10.             make.width.equalTo(200)
  11.             make.height.equalTo(40)
  12.         }
  13.         appleLoginButton.addTarget(self, action: #selector(appleLoginButtonTapped), for: .touchUpInside)
  14.         
  15.     }
  16.    
  17.     @objc func appleLoginButtonTapped() {
  18.         // 在这里处理按钮点击事件,启动苹果登录流程
  19.         let appleIDProvider = ASAuthorizationAppleIDProvider()
  20.         let request = appleIDProvider.createRequest()
  21.         request.requestedScopes = [.fullName, .email]
  22.         
  23.         let authorizationController = ASAuthorizationController(authorizationRequests: [request])
  24.         authorizationController.delegate = self
  25.         authorizationController.presentationContextProvider = self
  26.         authorizationController.performRequests()
  27.     }
  28.    
  29. }
  30. extension LoginVC: ASAuthorizationControllerDelegate {
  31.     func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
  32.         printXY(#function, obj: self, line: #line)
  33.         if let credential = authorization.credential as? ASAuthorizationAppleIDCredential {
  34.             // 用户成功登录,可以获取用户身份信息并进行相应操作
  35.             let userIdentifier = credential.user
  36.             //名字只有第一登录的时候可以获取到,后面都是nil
  37.             let fullName = credential.fullName
  38.             let name = (fullName?.givenName ?? "xxx") + " " + (fullName?.familyName ?? "apple")
  39.             let email = credential.email
  40.            
  41.             // 在这里处理用户身份信息,例如创建用户账户、进行授权等
  42.         }
  43.     }
  44.    
  45.     func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
  46.         // 登录过程中出现错误,可以在这里处理错误情况
  47.         print("Apple Login Error: \(error.localizedDescription)")
  48.     }
  49. }
  50. extension LoginVC: ASAuthorizationControllerPresentationContextProviding {
  51.     func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {
  52.         return self.view.window!
  53.     }
  54. }
复制代码
参考博客

iOS 苹果登录(第三方登录) - csdn
集成AppleID登录 - 简书
chatGPT答案

要在你的 iOS 应用中接入苹果登录,你必要按照以下步调举行:
苹果开发者账号: 确保你有一个苹果开发者账号,因为在使用苹果登录功能之前,你必要在苹果开发者网站上注册你的应用,并创建相应的身份验证密钥。
Xcode 中配置应用: 打开你的 Xcode 项目,然后转到你的应用目标设置。在 “Signing & Capabilities”(署名与能力)选项卡中,确保你的应用已启用 “Sign in with Apple”(使用苹果登录)功能。如果没有,请点击 “+” 按钮,然后添加该功能。
在苹果开发者网站上配置身份验证密钥: 登录苹果开发者网站,转到 “Certificates, Identifiers & Profiles”(证书、标识符与配置文件)部门。然后,创建一个新的认证密钥,选择 “Sign in with Apple”(使用苹果登录)选项。
集成苹果登录 SDK: 在你的应用中集成苹果登录 SDK。苹果提供了一个名为 “AuthenticationServices” 的框架,你可以使用它来处理苹果登录。确保在必要使用苹果登录功能的视图控制器中导入该框架,并按照苹果的文档举行配置。
实现登录流程: 在你的应用中添加得当的按钮或页面,用于触发苹果登录流程。在用户点击登录按钮时,调用苹果登录 SDK 提供的方法启动登录流程。然后,处理登录成功或失败的回调,并根据情况实行相应的操作。
处理用户数据: 登录成功后,你将收到一个包罗用户身份信息的认证令牌。你可以使用这些信息来创建用户账户、举行授权或实行其他操作。确保遵照苹果的隐私政策和最佳实践,精确处理用户数据。
测试和优化: 在集成苹果登录后,举行全面的测试,确保它能够在各种情况下正常工作。此外,思量优化用户体验,确保登录流程简单直观,并提供得当的错误处理和反馈。
通过以上步调,你应该能够在你的 iOS 应用中成功集成苹果登录功能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表