【发布时间】:2017-10-25 06:09:43
【问题描述】:
我正在使用 Firebase Auth 和 Facebook 在 iOS 上开发应用。我想在使用 Facebook 登录后使用 Facebook graph sdk。它第一次工作正常。但是当我重新启动应用程序时,图形 API 不起作用:
必须使用活动访问令牌来查询有关 当前用户。
以下代码为零:
FBSDKAccessToken.current()?.tokenString
但是用户使用 Firebase Auth 登录:
// check if user is logged
FIRAuth.auth()?.addStateDidChangeListener({ (auth, user) in
if user != nil{
print("User logged") ...
有没有办法通过 Firebase Auth 获取当前的 Facebook 访问令牌? 或者我必须保留访问令牌以便以后使用它?或者每次都重新登录用户(一点都不友好)?
我的解决方案(但不知道是否最好):
- 在fb登录时将“访问令牌”保存在firebase数据库中
- 应用重启时,从数据库中获取持久化的“访问令牌”
- 检查“访问令牌”是否仍然有效
- 如果没有,请重新登录用户并获取新的“访问令牌”并保存
更新
我注意到我收到了这条消息:
回退到从 NSUserDefaults 加载访问令牌,因为 模拟器错误
所以我在真实设备中检查了我的代码,现在它正在工作,访问令牌通过应用重新启动保持不变。
【问题讨论】:
标签: ios facebook facebook-graph-api firebase firebase-authentication