【问题标题】:Email verification for iOS app using Firebase使用 Firebase 对 iOS 应用进行电子邮件验证
【发布时间】:2016-06-04 14:29:30
【问题描述】:

我正在考虑使用 Firebase 制作一个 iOS 应用,我想知道如何验证注册用户的电子邮件 ID我的 iOS 应用程序?这样只有通过验证电子邮件的用户才能成为我的 iOS 应用程序的用户。

【问题讨论】:

    标签: ios swift firebase firebase-authentication


    【解决方案1】:

    您可以使用 sendEmailVerificationWithCompletion: 方法发送验证电子邮件,当用户登录时,您可以使用 emailVerified 属性检查验证统计信息,正如此处定义的那样...

    https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user#instance-method-summary

    因此,您可以决定未经验证的用户可以执行哪些操作,例如再次请求验证...

    【讨论】:

    • 非常感谢您指出这一点,我只是浏览了一下,看起来他们有一个名为 emailVerified 的漂亮属性,但它可以提供帮助吗,就像用户不是已验证,他无法登录我的 iOS 应用?
    • 你需要自己处理,因为用户会登录......你需要获取currentUser并检查是否验证,如果验证了你可以考虑用户登录在您的应用流程中,您可以显示一条消息,说明验证您的电子邮件以继续并禁用内容
    • 非常感谢@Ymmanuel ...所以如果我错了,请纠正我,根据我的理解,就像Firebase无论如何都会创建帐户,但这取决于我们程序员,什么是否应该让用户看到,我想使用 emailVerified 的 firebase 属性我只能连接到应用程序的其他控制器,否则如果未验证,则向用户发出警报以验证他的电子邮件使用该应用程序。
    • 我如何验证电子邮件?如何从 firebase 更改值 isEmailVerified?
    • 使用最新版本的 firebase,您可以使用带有更新用户方法 firebase.google.com/docs/auth/admin/manage-users 的 admin-firebase 节点模块使用后端服务器来执行此操作,或者您可以使用用户验证邮件在客户端执行此操作就像这里解释的那样firebase.google.com/docs/auth/ios/manage-users
    【解决方案2】:

    在我的应用中我确实喜欢这样

            [[FIRAuth auth] signInWithEmail:emailTxt.text
                                   password:pwdStr
                                 completion:^(FIRUser *user, NSError *error) {
                                     // ...
                                     NSLog(@"User: %@\nUserEmail:%@\nError:%@",user.uid,user.email,error);
                                     NSLog(user.isEmailVerified ? @"Verified = Yes" : @"Verified = No");
                                     [[NSUserDefaults standardUserDefaults] setObject:user.uid forKey:@"userid"];
    
    
                                     if(error == nil){
                                         if (user.isEmailVerified) {
    
    
                                             self.ref = [[FIRDatabase database] reference];
                                             NSString *userID = [FIRAuth auth].currentUser.uid;
    
    
                                             [[_ref child:[NSString stringWithFormat:@"users/user/%@",userID]] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
    
                                                 // Get user value
                                                 NSLog(@"%@",snapshot.value);
                                                 // ...
    
    
    
                                             } withCancelBlock:^(NSError * _Nonnull error) {
                                                 NSLog(@"%@", error.localizedDescription);
                                             }];
    
    
                                 }];
    

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 2021-05-11
      • 2019-05-28
      • 1970-01-01
      • 2016-09-21
      • 2018-09-22
      • 2018-05-31
      相关资源
      最近更新 更多