我想检查 Facebook 的首次登录,这样我可以提供 2 个选项: 1. 如果是第一次登录,则发送到身份验证步骤 2,其中需要添加额外的详细信息。 2. 选项2,如果用户使用Facebook登录已经被发送到主页。
我正在使用 firebase,我知道如何记录它们,但这部分我无法弄清楚。我正在使用这个工作正常的函数,只是将它们发送到正确的 viewController 的部分给我带来了麻烦:
func loginWithFacebookAction() {
print("Login with Facebook clicked")
FBSDKLoginManager().logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, err) in
if err != nil {
print("FB login failed", err as Any)
} else if (result?.isCancelled)! {
print("The user cancelled loggin in")
self.segueProgramaticWithPresent(viewController: LoginController())
} else {
if (FBSDKAccessToken.current() != nil) {
print("Go to main page")
self.facebookRequestUserDetails()
self.segueToAnotherView(storyboard: "Main", identifier: "SWRevealViewController")
} else {
print("Go to Step 2 - add more details")
self.segueProgramaticWithPresent(viewController: CreateAccountST2())
}
}
我正在使用 FacebokToken 进行检查,但当用户单击按钮时,它将始终返回 true。
最佳答案
- 将注册的 Facebook 用户及其
facebook_id
存储在 服务器端数据库。 - 然后,当用户使用 facebook 成功登录时,您将得到
使用
FBSDKAccessToken.current()
获取 access_token 并将其发送至 您的服务器端 API, 在服务器端使用该
access_token
向图形 API 发出请求,并且 获取facebookuser_id
https://graph.facebook.com/me?access_token= {accesstoken} 其中 仅返回一个包含
id
字段的 json。- 当您获得
facebookuser_id
后,您就可以检查用户是否 您的数据库中已存在。 - 如果不存在,则创建一个新用户并使用以下代码进行响应 说“嘿,这是一个新用户,所以你应该从 她/他”
- 如果已存在,则返回用户。
关于swift - 如何快速检查 Facebook 的首次登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45117481/