iOS Facebook和Google登录
前言
最近在对接完Google和Facebook登录之后准备对这部分内容做一个小小的总结,方便以后有需要的时候查看。
具体的Google账号申请和Facebook账号的申请在这里就不做介绍了,这部分内容大多也都是产品在操作,我们主要关注的还是我们的代码以及项目配置问题。(下面是项目中的截图)

一、Cocopads导入项目
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()
}
1、Facebook关于URL Types的配置前面的截图已经有保存、我们就不在重复说,fb后面的是你的应用ID。
2、导入头文件
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登录的更多相关文章
- 关于Facebook和Google+授权登录
实际中遇到需要Facebook和Google+等第三方授权登录自己的Web应用(可能还有Android和IOS的手机应用),本质上都是JS SDK的官方应用.这时候不得不去他们官方查看文档. 注:一下 ...
- 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 ...
- iOS Facebook SDK
iOS 使用 Facebook SDK 可以登录,分享,发布通知(Notifications)等. 首先下载 Facebook SDK.然后在 Facebook Developer 上注册自己的 ap ...
- ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204
最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1. 400. Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...
- Facebook 和 Google 如何激发工程师的创造力
原文链接:http://kb.cnblogs.com/page/193450/ 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对于典型 ...
- google+ 登录API 使用 javascript sdk 快速入门 (图解)
准备工作: 打开Google API 控制台 : https://code.google.com/apis/console 点击 My Project (我的项目) 按照图示流程,您将完成一个goog ...
- Facebook和Google如何激发工程师的创造力
http://taiwen.lofter.com/post/664ff_ad8a15 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对 ...
- android应用集成google登录
集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录: 1,android 运行版本4.0及更新版本 2,android 设 ...
- iOS微信实现第三方登录的方法
这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2 ...
- 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签
微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...
随机推荐
- 创新突破!天翼云荣膺CCF HPC China 2024高性能计算创新大奖
近日,第20届CCF全国高性能计算学术年会(CCF HPC China 2024)在武汉隆重召开.CCF HPC China是全球高性能计算领域三大标志性盛会之一,本届大会以"华章廿载 新质 ...
- Jenkins插件:Publish over SSH
Jenkins插件:Publish over SSH Jenkins作为一个开源的持续集成和交付工具,通过插件扩展可以实现各种功能.其中,Publish over SSH插件是Jenkins的一个常用 ...
- 6.App.vue配置
1.修改<div id="app">指定动态路由,可以设置导航栏 <div id="app"> <!-- 导航栏 --> & ...
- JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的?
JDK8到JDK17都升级了那些新特性?又有哪些能常用好用的? 最近要做一个项目升级,因为之前的项目中有用到ElasticSearch 7.10.1版本,在之前的漏扫环节时会出现Tomcat渗透为问题 ...
- kvm virtio window server2003
https://www.linux-kvm.org/page/Downloads 这是kvm官网对virtio讲解 http://www.linux-kvm.org/images/d/dd/KvmFo ...
- Vue3 基础概念与环境搭建
前言 首先需要提醒大家的是,Vue2 已经在2023年停止维护,为了能更好地适应前端开发的发展趋势以及获得更好的性能和功能,我们将从这篇文章开始进入Vue3的阶段.如果对Vue2有想了解的小伙伴可以自 ...
- ABB机器人3HNE00313-1示教器黑屏故障维修
随着工业自动化的快速发展,ABB机器人示教器在生产线上的应用越来越广泛.然而,在使用过程中,示教器偶尔也会出现故障,其中比较常见的一种是ABB工业机械手示教器黑屏故障. 一.ABB工业机器人示教盒黑屏 ...
- c# 对序列化类XMLSerializer 二次封装泛型化方便了一些使用的步骤
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17270107.html 加工的泛型类如下: using System; using Syste ...
- window本地部署deepseek
window本地部署deepseek 学习自[[教程]DeepSeek本地免费部署教程,丝滑不卡顿!带你解锁隐藏功能!]https://www.bilibili.com/video/BV1viFaeB ...
- Ruoyi-vue 左侧菜单栏默认保持收缩
在项目的 src\store\modules\app.js 路径下 sidebar: { opened: Cookies.get('sidebarStatus') ? !!+Cookies.get(' ...