Firebase:在验证时禁用帐户或在启用后发送验证

     2023-02-23     234

关键词:

【中文标题】Firebase:在验证时禁用帐户或在启用后发送验证【英文标题】:Firebase: disable account on verification or send verification after enabling 【发布时间】:2021-07-28 05:25:25 【问题描述】:

在我正在开发的 Flutter + Firebase 应用程序中,用户创建一个帐户(使用 Firebase 身份验证)并收到一封验证电子邮件。但是,此应用程序仅适用于选定数量的人,因此我将其实现为默认禁用新用户并需要由应用内管理员启用。事实证明,如果您的帐户被禁用,验证链接将不起作用,因此新用户需要等待管理员启用他们的帐户才能进行验证。这并不理想,所需的工作流程可能是以下之一:

用户创建帐户 > 帐户自动禁用 > 管理员启用帐户 > 发送验证电子邮件(首选) 用户创建帐户 > 发送验证电子邮件 > 验证时禁用帐户 > 管理员启用帐户 > 用户收到帐户已启用的通知(由于最后一步,不太可取)

选项 1 需要在验证帐户后通知某些功能,以便可以禁用它,我找不到任何关于这是否可能的文档。选项 2 需要以一些奇怪的方式接管 Firebase Auth 发送的验证电子邮件。我的问题是:选项1有可能吗?如果没有,如何处理选项 2?

【问题讨论】:

【参考方案1】:

要通过客户端 SDK 或 REST API 验证帐户的电子邮件地址,用户需要登录该帐户。如果您在 Firebase 身份验证中禁用某个帐户,用户将无法登录该帐户进行验证。

您的选择是:

    要么自己处理整个流程,然后使用 Admin SDK 验证并启用帐户。文档中没有这方面的分步指南。

    或者不要在 Firebase 身份验证中禁用该帐户,而是只允许用户在验证其帐户后使用该应用并访问数据。

第二个选项是迄今为止最常见的,因为您基本上只是将流程的身份验证部分(用户证明其凭据)与授权部分(用户获得应用程序及其数据的访问权限)分开。

【讨论】:

感谢您的澄清!我们可能会选择第一种方法,因为第二种方法的问题是即使经过验证的用户也不应该被自动授予访问权限。我想这不是一种非常常见的方法,因为通常您希望尽可能多的用户并且不想仔细检查每个帐户。很高兴知道通过编写我们自己的流程仍然可以实现! 很高兴听到这对您有用。 ? 我确实想澄清一些你似乎仍然将身份验证(证明你是谁)与授权(被授予访问某事的权限)混淆的事情。仅授予经过验证的用户访问权限非常常见,但通常在应用程序代码和数据库的安全规则中完成。即使在自定义流程中,您也将在某个地方做同样的事情:根据提供的凭据,您将验证他们是他们声称的身份,但无权访问您的应用程序.

如何在启用电话身份验证的情况下导出 Firebase 用户帐户

】如何在启用电话身份验证的情况下导出Firebase用户帐户【英文标题】:HowtoexportfirebaseuseraccountwithphoneAuthenabled【发布时间】:2018-01-2703:03:26【问题描述】:我需要导出和导入firebase用户帐户。它适用于使用电子邮件密码验证注册... 查看详情

在运行时禁用/启用 Firebase Crashlytics

】在运行时禁用/启用FirebaseCrashlytics【英文标题】:Disable/EnableFirebaseCrashlyticsduringruntime【发布时间】:2018-09-0210:26:45【问题描述】:随着Google发出一波波关于需要让用户选择加入崩溃报告的警告(source),我正在尝试为FirebaseCrashlyt... 查看详情

如何在 Flutter 中启用/禁用 Firebase Crashlytics

】如何在Flutter中启用/禁用FirebaseCrashlytics【英文标题】:Howtoenable/disableFirebaseCrashlyticsinFlutter【发布时间】:2020-10-0416:30:35【问题描述】:我正在尝试在我的Flutter应用中实现选择加入机制,用户可以选择启用/禁用将Crashlytics数据... 查看详情

通过 Flutter for Firebase 重新发送验证

】通过FlutterforFirebase重新发送验证【英文标题】:ResendVerificationthroughFlutterforFirebase【发布时间】:2020-09-1505:39:05【问题描述】:当用户尝试注册已创建的帐户时,我遇到了向他们发送电子邮件验证链接的问题。我正在使用Flutter... 查看详情

Expo - Firebase 电子邮件验证

】Expo-Firebase电子邮件验证【英文标题】:Expo-FirebaseEmailVerification【发布时间】:2021-07-1019:42:35【问题描述】:我尝试在用户创建帐户时向他发送验证电子邮件。目前,当我在开发模式下的expo应用程序上运行它时它可以工作,但... 查看详情

为 Gmail 启用两因素身份验证时发送电子邮件失败

】为Gmail启用两因素身份验证时发送电子邮件失败【英文标题】:SendingemailfailswhentwofactorauthenticationisonforGmail【发布时间】:2014-12-3109:32:04【问题描述】:我在我的网络应用程序中使用我的Gmail帐户和smtp.gmail.com来测试和发送电子... 查看详情

在服务器/管理员上创建帐户后发送 Firebase 重置密码电子邮件

】在服务器/管理员上创建帐户后发送Firebase重置密码电子邮件【英文标题】:SendFirebaseResetPasswordEmailAfterAccountCreatedOnServer/Admin【发布时间】:2018-12-0110:22:26【问题描述】:我正在创建一个网站,企业可以在其中免费向他们的客户... 查看详情

如何在 asp.net C# 中使用启用两因素身份验证的 office365 电子邮件帐户发送电子邮件?

】如何在asp.netC#中使用启用两因素身份验证的office365电子邮件帐户发送电子邮件?【英文标题】:Howtosendemailusingtwofactorauthenticationenabledoffice365emailaccountinasp.netC#?【发布时间】:2019-08-2903:58:09【问题描述】:我正在尝试使用启用... 查看详情

如何在 LDAP ODSEE 中查看帐户是不是启用/禁用、锁定/解锁

】如何在LDAPODSEE中查看帐户是不是启用/禁用、锁定/解锁【英文标题】:Howtoviewifanaccountisenabled/disabled,locked/unlockedinLDAPODSEE如何在LDAPODSEE中查看帐户是否启用/禁用、锁定/解锁【发布时间】:2020-10-2515:27:46【问题描述】:我正在尝... 查看详情

Rails 5 成功发送数据后重新启用表单提交

...重复提交。每当页面在提交后被重定向或重新呈现时出现验证错误,按钮就会再次启用。在我的情况下,我让控制器发送一个zip文件,我在控制器操作中使用以 查看详情

在 Firebase 控制台上检测帐户禁用

】在Firebase控制台上检测帐户禁用【英文标题】:DetectaccountdisableonFirebaseConsole【发布时间】:2020-06-0507:24:45【问题描述】:我正在使用Flutter和Firebase。我想弄清楚是否有一种“内置”方法来检测Firebase帐户何时被禁用,以便Flutter... 查看详情

启用两步验证后无法在 Pidgin 中使用 GTalk [关闭]

】启用两步验证后无法在Pidgin中使用GTalk[关闭]【英文标题】:CannotuseGTalkinPidginafterenabling2stepverification[closed]【发布时间】:2013-09-1407:48:34【问题描述】:在为Google启用两步验证后,我无法通过PidginIM使用GTalk。我收到帐户被禁用... 查看详情

启动后启用/禁用身份验证选项

】启动后启用/禁用身份验证选项【英文标题】:Enable/disableauthenticationoptionsafterstartup【发布时间】:2013-12-2312:55:27【问题描述】:我想创建一个自定义CMS,其中管理员可以在其管理面板中选择所有可能的登录选项。但我只能在我... 查看详情

如何包括是不是为 Spring Boot 用户身份验证启用用户帐户

】如何包括是不是为SpringBoot用户身份验证启用用户帐户【英文标题】:HowtoincludeincludewhetherusersaccountenabledforSpringbootUserauthentication如何包括是否为SpringBoot用户身份验证启用用户帐户【发布时间】:2021-08-1304:27:18【问题描述】:我... 查看详情

Firebase 消息传递 - 当应用程序关闭或在 Flutter 中休眠时不会发送通知

】Firebase消息传递-当应用程序关闭或在Flutter中休眠时不会发送通知【英文标题】:Firebasemessaging-NotificationsarenotsentwhenappisClosedorsleepinFlutter【发布时间】:2021-06-0706:26:22【问题描述】:我已经在Flutter中构建了我的应用,并且我已... 查看详情

Keycloak:密码重置后禁用重定向到帐户页面并显示消息

】Keycloak:密码重置后禁用重定向到帐户页面并显示消息【英文标题】:Keycloak:Disableredirecttoaccountpageafterpasswordresetandshowmessage【发布时间】:2020-12-0718:40:52【问题描述】:我正在使用Keycloak,我想启用忘记密码流程。我已启用忘... 查看详情

我的帐户未启用到 Firebase 的数字迁移

】我的帐户未启用到Firebase的数字迁移【英文标题】:DigitsmigrationtoFirebaseisnotenabledformyaccount【发布时间】:2017-05-1914:14:01【问题描述】:我无法将数字添加到我们的iOS应用,也无法迁移到Firebase身份验证。我的帐户未启用https://do... 查看详情

在 Flutter 中使用 Firebase 电话身份验证超时后使 OTP 无效

】在Flutter中使用Firebase电话身份验证超时后使OTP无效【英文标题】:InvalidateOTPaftertimeoutusingfirebasephoneauthenticationinflutter【发布时间】:2021-03-2917:23:52【问题描述】:我在我的颤振应用程序中使用firebase电话身份验证,我想在超时... 查看详情