如何从刷新令牌获取访问令牌?

时间:2019-04-19 12:52:17

标签: ios swift google-api google-oauth google-signin

我有一个iOS Swift应用程序,该应用程序使用Google Cloud Prediction API确定一些图像。经过一些预测后,会话将过期,并且将不得不重定向用户以登录页面。而不是重定向到登录,我希望应用程序从刷新令牌中获取新的访问令牌,如Google文档here中所述。

我已点击this链接进行登录,并已成功将Google SignIn集成到我们的应用程序中。 我的要求是从刷新令牌获取访问令牌,以便如果会话过期,我可以使用新令牌静默登录。 请提供端点详细信息以及所有后续步骤。

我已经完成了link中提供的步骤。在步骤6中,他们以Java / Python提供了服务器端代码,用于从刷新令牌获取访问令牌。如何获取可从iOS应用程序使用的REST API详细信息?

1 个答案:

答案 0 :(得分:0)

启动应用程序时,并非总是会调用tokenRefreshNotification函数。

AppDelegate.swift

import Firebase

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    FirebaseApp.configure()
    return true
}

但是,将代码放入常规didRegisterForRemoteNotificationsWithDeviceToken委托函数中时,每次都可以获取令牌:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    if let refreshedToken = InstanceID.instanceID().token() {
        print("InstanceID token: \(refreshedToken)")
    }
}