首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查登录后的用户是否通过Facebook登录到ios for的防火墙中?

如何检查登录后的用户是否通过Facebook登录到ios for的防火墙中?
EN

Stack Overflow用户
提问于 2018-08-28 09:57:17
回答 4查看 2.4K关注 0票数 3

我的应用程序有脸书和电子邮件密码登录与防火墙。现在,对于那些与Facebook签约的用户,我不想核实他们的电子邮件。但在Auth.auth().currentUser?.isEmailVerified中,它的返回始终是假的。那么,还有什么其他方法可以检测到用户在facebook登录吗?我知道我可以在登录前在用户默认情况下存储值,但在卸载和重新安装应用程序之后,我将失去该用户默认设置。而firebase则让用户登录。我可以使用密钥链,但如果firebase直接提供,那么这将使编码变得容易。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-28 12:48:57

我找到了一种使用firebase方法的解决方案:

代码语言:javascript
复制
if let providerData = Auth.auth().currentUser?.providerData {
    for userInfo in providerData {
        switch userInfo.providerID {
        case "facebook.com":
            print("Facebook Login")
            //isVerifiededUser = true
        default:
            print("provider is \(userInfo.providerID)")
        }
    }
}
票数 11
EN

Stack Overflow用户

发布于 2018-08-28 12:23:06

您可以使用:

代码语言:javascript
复制
    if let user = Auth.auth().currentUser {

       if FBSDKAccessToken.current() != nil {
           // logged in using facebook
       }
       else {
           // logged in using manual email/password method
       }
    }

因此,您可以发送验证电子邮件,只有那些谁是登录使用电子邮件/密码方法。

票数 7
EN

Stack Overflow用户

发布于 2018-08-28 10:10:47

Firebase没有提供显示用于创建Firebase帐户的第一种方法的方法。您将有一个列表的所有供应商附加到一个消防用户与他们的电子邮件/电话号码附加到他们。

默认情况下,Firebase只设置为Google SignIn验证的电子邮件,对于其他供应商,Firebase行为是设置false (尽管有时它会随机设置电子邮件验证为真)。的原因是,Firebase不能保证电子邮件是由facebook在其平台上验证的,但在Google的情况下是有信任的。

一种选择是,你总是发送验证电子邮件,无论是facebook还是电子邮件8月。第二,您不使用电子邮件密码登录,而是使用新的电子邮件链接身份验证,这消除了在密码登录中所需的电子邮件。

编辑:

如果一次只允许使用一种方法,则可以从firebase用户获取提供者列表,并检查提供程序列表是否存在“密码”签名方法,在检查电子邮件验证后发送验证邮件,否则不要发送电子邮件并继续应用程序。

以下是电子邮件链接身份验证的资源:https://firebase.google.com/docs/auth/ios/email-link-auth

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52055071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档