IOS Facebook SDK 4.01:我应该使用 FBSDKAccessToken.currentAccessToken() 检查用户是否登录吗?
IOS Facebook SDK 4.01: Should I be using FBSDKAccessToken.currentAccessToken() to check if user is logged in?
我开始尝试熟悉 FB 最新的 IOS SDK (4.0.1)。我已将其集成到 IOS8 Swift 项目中,并使用 FBSDKLoginButton 使用户登录和注销。如果用户已经登录,我希望应用程序跳过显示登录视图控制器。
我应该只检查 FBSDKAccessToken currentAccessToken() 的 return 结果吗?如果用户未登录,这是否 return 'nil'?文档对这种方法有以下说法:
You can load this with the SDK from a keychain cache or from an app
bookmark when your app cold launches. You should check its
availability in your view controller's viewDidLoad.
类似于:
// LoginViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
if(FBSDKAccessToken.currentAccessToken()){
//They are logged in so show another view
}else{
//They need to log in
}
}
所以这听起来像 可能 是我正在寻找的东西,但我不能从这个描述中真正分辨出来。 SO 的好人是如何处理这个常见用例的? :)
-尼克
是的,FBSDKAccessToken.currentAccessToken() 是您应该检查的内容,尽管您拥有的代码将不起作用,因为这不是 return 布尔值。你需要这样的东西:
if(FBSDKAccessToken.currentAccessToken() != nil) {
//They are logged in so show another view
} else {
//They need to log in
}
此外,这仅适用于应用程序在 foreground/background 之间移动时(用户点击主页按钮)。如果应用程序被终止并冷启动,令牌将丢失,除非您在 AppDelegate 的 didFinishlaunchingWithOptions 中实现以下内容:
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
您无需担心钥匙串,因为只要您实现了必要的部分,系统就会自动为您处理。
以下网站有一个很好的教程,可以让一个简单的例子工作:http://www.brianjcoleman.com/tutorial-how-to-use-login-in-facebook-sdk-4-0-for-swift/
我开始尝试熟悉 FB 最新的 IOS SDK (4.0.1)。我已将其集成到 IOS8 Swift 项目中,并使用 FBSDKLoginButton 使用户登录和注销。如果用户已经登录,我希望应用程序跳过显示登录视图控制器。
我应该只检查 FBSDKAccessToken currentAccessToken() 的 return 结果吗?如果用户未登录,这是否 return 'nil'?文档对这种方法有以下说法:
You can load this with the SDK from a keychain cache or from an app bookmark when your app cold launches. You should check its availability in your view controller's viewDidLoad.
类似于:
// LoginViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
if(FBSDKAccessToken.currentAccessToken()){
//They are logged in so show another view
}else{
//They need to log in
}
}
所以这听起来像 可能 是我正在寻找的东西,但我不能从这个描述中真正分辨出来。 SO 的好人是如何处理这个常见用例的? :)
-尼克
是的,FBSDKAccessToken.currentAccessToken() 是您应该检查的内容,尽管您拥有的代码将不起作用,因为这不是 return 布尔值。你需要这样的东西:
if(FBSDKAccessToken.currentAccessToken() != nil) {
//They are logged in so show another view
} else {
//They need to log in
}
此外,这仅适用于应用程序在 foreground/background 之间移动时(用户点击主页按钮)。如果应用程序被终止并冷启动,令牌将丢失,除非您在 AppDelegate 的 didFinishlaunchingWithOptions 中实现以下内容:
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
您无需担心钥匙串,因为只要您实现了必要的部分,系统就会自动为您处理。
以下网站有一个很好的教程,可以让一个简单的例子工作:http://www.brianjcoleman.com/tutorial-how-to-use-login-in-facebook-sdk-4-0-for-swift/