前言


最近在对接完Google和Facebook登录之后准备对这部分内容做一个小小的总结,方便以后有需要的时候查看。

具体的Google账号申请和Facebook账号的申请在这里就不做介绍了,这部分内容大多也都是产品在操作,我们主要关注的还是我们的代码以及项目配置问题。(下面是项目中的截图)

Google


一、Cocopads导入项目

#Google
pod 'GoogleSignIn'

二、配置项目

1、导入GoogleService-Info.plist文件

我还是建议大家直接导入这个文件的,因为你一旦使用其他谷歌服务,还是需要这个文件的,我们一旦介入谷歌登录,后面肯定还是需要其他服务的,比如Firebase数据统计等等。

2、配置URL Types

Google这里我们配置的是前面Plist文件中的REVERSED_CLIENT_ID字段

三、我们接下来看看具体的代码

1、导入头文件

/// Google登录
#import <GoogleSignIn/GoogleSignIn.h>

2、具体的登录代码如下

    /// google登录
/// - Parameters:
/// - controller: controller description
/// - loginSuccess: loginSuccess description
/// - loginFail: loginFail description
func loginWithGoogle(_ controller:BaseViewController,loginSuccess:@escaping RequestSuccess, loginFail:@escaping RequestFail) { let signInConfig = GIDConfiguration(clientID: String.SDKId.googleClientId)
GIDSignIn.sharedInstance.signIn(with: signInConfig, presenting: controller) { result, error in guard error == nil else { let error = ErrorRespond()
error.msg = "The google authorization information failed"
loginFail(error)
return
} let idToken = result?.authentication.idToken
if (idToken != nil) { debugPrint(result?.profile?.email ?? "Email")
debugPrint(result?.userID ?? "userID")
debugPrint(idToken ?? "idToken") /// 组装需要的数据 处理自己的后续逻辑
}
}
}

3、退出登录方法

/// Google退出登录
func loginOutWithGoogle() { GIDSignIn.sharedInstance.signOut()
}

Facebook


1、Facebook关于URL Types的配置前面的截图已经有保存、我们就不在重复说,fb后面的是你的应用ID。

2、导入头文件

/// Facebook
import FBSDKLoginKit

3、具体的实现代码

    /// Facebook登录
/// - Parameters:
/// - controller: controller description
/// - loginSuccess: loginSuccess description
/// - loginFail: loginFail description
func loginWithFaceBook(_ controller:BaseViewController,loginSuccess:@escaping RequestSuccess, loginFail:@escaping RequestFail) { let loginManager = LoginManager()
loginManager.logIn(permissions: ["public_profile","email"], from: controller) { result, error in if error != nil{ let error = ErrorRespond()
error.msg = "The facebook authorization information failed"
loginFail(error)
}else{ debugPrint("----------token----------------")
debugPrint(result?.token?.tokenString ?? "")
/// 判断token是否获取到 -没有就走错误
if let tokenString = result?.token?.tokenString {
/// 获取个人资料
Profile.loadCurrentProfile { profile, error in debugPrint(profile?.userID ?? "")
debugPrint(profile?.firstName ?? "")
debugPrint(profile?.lastName ?? "")
debugPrint(profile?.email ?? "")
debugPrint(profile?.imageURL ?? "")
debugPrint("--------------------------")
debugPrint(result?.token?.userID ?? "") /// 获取个人信息是否成功
guard error == nil else { let error = ErrorRespond()
error.msg = "The facebook authorization information failed"
loginFail(error)
return
} /// 组装需要的数据 处理自己的后续逻辑
}
}else{ let error = ErrorRespond()
error.msg = "The facebook authorization information failed"
loginFail(error)
}
}
}
}

4、退出登录

/// Facebook退出登录
func loginOutWithFacebook() { let loginManager = LoginManager()
loginManager.logOut()
}

iOS Facebook和Google登录的更多相关文章

  1. 关于Facebook和Google+授权登录

    实际中遇到需要Facebook和Google+等第三方授权登录自己的Web应用(可能还有Android和IOS的手机应用),本质上都是JS SDK的官方应用.这时候不得不去他们官方查看文档. 注:一下 ...

  2. ASP.NET Web API 2 external logins with Facebook and Google in AngularJS app

    转载:http://bitoftech.net/2014/08/11/asp-net-web-api-2-external-logins-social-logins-facebook-google-a ...

  3. iOS Facebook SDK

    iOS 使用 Facebook SDK 可以登录,分享,发布通知(Notifications)等. 首先下载 Facebook SDK.然后在 Facebook Developer 上注册自己的 ap ...

  4. ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204

    最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1.    400.  Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...

  5. Facebook 和 Google 如何激发工程师的创造力

    原文链接:http://kb.cnblogs.com/page/193450/ 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对于典型 ...

  6. google+ 登录API 使用 javascript sdk 快速入门 (图解)

    准备工作: 打开Google API 控制台 : https://code.google.com/apis/console 点击 My Project (我的项目) 按照图示流程,您将完成一个goog ...

  7. Facebook和Google如何激发工程师的创造力

    http://taiwen.lofter.com/post/664ff_ad8a15 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对 ...

  8. android应用集成google登录

        集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录:         1,android 运行版本4.0及更新版本         2,android 设 ...

  9. iOS微信实现第三方登录的方法

    这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下   一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2 ...

  10. 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签

    微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...

随机推荐

  1. 创新突破!天翼云荣膺CCF HPC China 2024高性能计算创新大奖

    近日,第20届CCF全国高性能计算学术年会(CCF HPC China 2024)在武汉隆重召开.CCF HPC China是全球高性能计算领域三大标志性盛会之一,本届大会以"华章廿载 新质 ...

  2. Jenkins插件:Publish over SSH

    Jenkins插件:Publish over SSH Jenkins作为一个开源的持续集成和交付工具,通过插件扩展可以实现各种功能.其中,Publish over SSH插件是Jenkins的一个常用 ...

  3. 6.App.vue配置

    1.修改<div id="app">指定动态路由,可以设置导航栏 <div id="app"> <!-- 导航栏 --> & ...

  4. JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?

    JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的? 最近要做一个项目升级,因为之前的项目中有用到ElasticSearch 7.10.1版本,在之前的漏扫环节时会出现Tomcat渗透为问题 ...

  5. kvm virtio window server2003

    https://www.linux-kvm.org/page/Downloads 这是kvm官网对virtio讲解 http://www.linux-kvm.org/images/d/dd/KvmFo ...

  6. Vue3 基础概念与环境搭建

    前言 首先需要提醒大家的是,Vue2 已经在2023年停止维护,为了能更好地适应前端开发的发展趋势以及获得更好的性能和功能,我们将从这篇文章开始进入Vue3的阶段.如果对Vue2有想了解的小伙伴可以自 ...

  7. ABB机器人3HNE00313-1示教器黑屏故障维修

    随着工业自动化的快速发展,ABB机器人示教器在生产线上的应用越来越广泛.然而,在使用过程中,示教器偶尔也会出现故障,其中比较常见的一种是ABB工业机械手示教器黑屏故障. 一.ABB工业机器人示教盒黑屏 ...

  8. c# 对序列化类XMLSerializer 二次封装泛型化方便了一些使用的步骤

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17270107.html 加工的泛型类如下: using System; using Syste ...

  9. window本地部署deepseek

    window本地部署deepseek 学习自[[教程]DeepSeek本地免费部署教程,丝滑不卡顿!带你解锁隐藏功能!]https://www.bilibili.com/video/BV1viFaeB ...

  10. Ruoyi-vue 左侧菜单栏默认保持收缩

    在项目的 src\store\modules\app.js 路径下 sidebar: { opened: Cookies.get('sidebarStatus') ? !!+Cookies.get(' ...