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 ...
随机推荐
- mysql数据库指定ip远程访问(设置远程连接),赋权操作
mysql数据库指定ip远程访问(设置远程连接) 远程访问mysql报错,ip不允许链接的情况:错误号码1045Access denied for user '用户名' @'数据库地址' (using ...
- 搭建 VuePress 站点必做的 10 个优化
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 在搭建这 ...
- ORACLE 分页和行限制
行限制:示例 (此语法从12C版本开始支持) 以下语句返回具有最低employee_id值的 5 名员工: SELECT employee_id, last_name FROM Employees O ...
- 亮相2024 DPU&AI Networking创新大会,天翼云斩获两项大奖!
近日,以"智驱网络 芯动未来"为主题的2024 DPU&AI Networking创新大会在北京举办.大会表彰了在DPU与AI网络技术创新及实践应用中取得卓越成就的单位与项 ...
- API网关-APISIX简介
本文分享自天翼云开发者社区<API网关-APISIX简介>,作者:w****n Apache APISIX 是一个动态.实时.高性能的云原生 API 网关,提供了负载均衡.动态上游.灰度发 ...
- spring boot配置mybatis-plus
一.maven配置 <mybatis-plus.version>3.2.0</mybatis-plus.version> <mysql-connector.version ...
- 用python做时间序列预测三:时间序列分解
在初始概念篇中,我们简单提到了时间序列由趋势.周期性.季节性.误差构成,本文将介绍如何将时间序列的这些成分分解出来.分解的使用场景有很多,比如当我们需要计算该时间序列是否具有季节性,或者我们要去除该时 ...
- WinForm 多线程+委托来防止界面假死
参考: http://www.cnblogs.com/xpvincent/archive/2013/08/19/3268001.html 当有大量数据需要计算.显示在界面或者调用sleep函数时,容易 ...
- vue element UI el-table表格添加行点击事件
<el-table @row-click="openDetails"></el-table> //对应的 methods 中//点击行事件methods: ...
- Typecho弹出find Input author error怎么解决
大多数报错的起因就是因为,有些模板归档页面的评论功能被阉割掉了 于是导致一些评论验证功能的插件爆这个错误. #解决方法有以下三种 1,编辑这些没有评论功能的页面,高级设置,关闭评论,然后发布文章. 2 ...