iOS Google 登录最详细

开发者平台:https://firebase.google.com/docs/auth/ios/google-signin?authuser=0#swift_3

将 Google Sign-In 集成到您的 iOS 应用程序中

1. 开发者平台 - 登录/注册账号 - 添加项目 - 输入项目名称 - 点击继续…

image

2. 点击iOS - 进入注册应用页面

image

3. 点击注册应用

image

4. 下载plist文件,并拖入项目中

注:plist文件中已包含Google 登录ID与URL Types

image

以下参考:在 iOS 上使用 Google 登录服务进行身份验证

准备工作

  1. 将 Firebase 添加到您的 iOS 项目。在您的 Podfile 中添加以下 Pod:
// Use Firebase library to configure APIs
FirebaseApp.configure()
  1. 如果您尚未将您的应用与 Firebase 项目相关联,请在 Firebase 控制台中进行关联。
  2. 在 Firebase 控制台中启用 Google 登录机制:
    1. Firebase 控制台中,打开 Auth 部分。
    2. 登录方法标签页中,启用 Google 登录方法并点击保存

实现 Google 登录

按下列步骤实现 Google 登录。如需详细了解如何在 iOS 设备上使用 Google 登录服务,请参阅 Google 登录开发者文档

  1. 将自定义网址方案添加到您的 Xcode 项目中:

      1. 打开项目配置:在左侧的树状视图中双击项目名称。在目标部分中选择您的应用,然后选择信息标签页,并展开网址类型部分。
      1. 点击 + 按钮,并为您的倒序客户端 ID 添加一个网址架构。要找到这个值,请打开 <nobr style="box-sizing: inherit;">GoogleService-Info.plist</nobr> 配置文件,然后查找 REVERSED_CLIENT_ID 键。复制该键的值,并将其粘贴到配置页面上的网址架构框中。将其他字段留空。

    完成上述操作后,您的配置应显示如下(但其中的值应替换为您的应用的值):

image.png
  1. 在应用委托的 application:didFinishLaunchingWithOptions: 方法中,配置 FirebaseApp 对象。
// Use Firebase library to configure APIs
FirebaseApp.configure()
  1. 实现您的应用委托中的 application:openURL:options: 方法。此方法应该调用 GIDSignIn 实例的 handleURL 方法,该方法将对您的应用在身份验证过程结束时收到的网址进行适当处理。
@available(iOS 9.0, *)
func application(_ application: UIApplication, open url: URL,
                 options: [UIApplication.OpenURLOptionsKey: Any])
  -> Bool {
  return GIDSignIn.sharedInstance.handle(url)
}
  1. 将应用的演示视图控制器和客户端 ID 传递给“Google 登录”登录方法,并根据生成的 Google 身份验证令牌创建 Firebase 身份验证凭据:
    tip:设置clientID:GIDSignIn.sharedInstance()?.clientID = "打开项目中的 GoogleService-Info.plist,复制CLIENT_ID Value"
guard let clientID = FirebaseApp.app()?.options.clientID else { return }

// Create Google Sign In configuration object.
let config = GIDConfiguration(clientID: clientID)

// Start the sign in flow!
GIDSignIn.sharedInstance.signIn(with: config, presenting: self) { [unowned self] user, error in

  if let error = error {
    // ...
    return
  }

  guard
    let authentication = user?.authentication,
    let idToken = authentication.idToken
  else {
    return
  }

  let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                 accessToken: authentication.accessToken)

  // ...
}

以下参考:将 Google Sign-In 集成到您的 iOS 应用程序中

//点击时候调用
GIDSignIn.sharedInstance.signIn(with: signInConfig, presenting: self) { user, error in
    guard error == nil else { return }

    // If sign in succeeded, display the app's main content View.
            let idToken = user?.authentication.idToken
            if (idToken != nil) {
                var param : [String:Any]
                param = [
                    "email":user?.profile?.email ?? "",
                    "user_id":user?.userID ?? "",
                    "id_token":idToken ?? "",
                ]
            }
  }

以上可以在user里面获取email,accessToken,idToken,userId

获取个人资料信息


撤销访问令牌并断开应用程序的连接
撤销代表用户授予您的应用的访问令牌,以及如何断开用户帐户与您的应用的连接

GIDSignIn.sharedInstance.disconnect { error in
    guard error == nil else { return }

    // Google Account disconnected from your app.
    // Perform clean-up actions, such as deleting data associated with the
    //   disconnected account.
}

disconnectWithCallback:方法除了断开用户的帐户和撤销令牌之外,还使用户退出。在调用disconnectWithCallback:之前,您不得将用户注销。

然后,您可以响应回调块中的成功断开连接并触发您的应用程序或后端代码中的任何适当逻辑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容