当前位置: 首页 > 知识库问答 >
问题:

如何禁用Firebase Phone Auth Android自动登录(onVerificationCompleted callback)

胡弘毅
2023-03-14

有没有办法使用Firebase Phone Auth禁用Android“即时验证”(自动登录)?有一种方法可以通过将verfyPhoneNumber的超时设置为0来禁用“自动检索”(参考:https://firebase.google.com/docs/reference/android/com/google/firebase/auth/PhoneAuthProvider.html)。但是我找不到禁用即时验证的文档方法。

我这样问是因为一个潜在的安全问题:从设备上移除SIM卡仍然会自动登录该用户!换句话说,使用他人旧设备的用户可以使用其旧电话号码登录。以下是复制步骤:

  • 在Android上,在具有功能SIM卡的设备上
  • 使用与该SIM卡关联的号码登录
  • 这将触发自动登录
  • 退出
  • 关闭设备并移除SIM卡
  • 重新打开设备并尝试使用相同的号码登录

观察到的行为:用户自动登录,尽管没有相应的SIM卡

预期行为:如果用户的设备没有与输入的电话号码相关联的SIM卡,则不会自动登录并向该号码发送SMS短信。

共有2个答案

彭修筠
2023-03-14

不幸的是,目前似乎没有办法禁用即时验证。

在要求开发人员添加此功能(实际上是出于另一个原因)后,我得到的答复是,它将被添加到功能请求中。

也许您也应该在那里添加注释,指定您的安全发现。也许它会加快添加此功能的过程:)

韩捷
2023-03-14

更新,11.5.09应该已经到达几乎所有用户的设备。SIM卡更改后将停止即时验证。您也可以使用此技巧进行手动测试。

在即将到来的Google Play services v11中。5计划在第三季度末发布,SIM卡更换将被自动检测到,这将停止即时验证工作。新版本将自动推送到用户设备上,无需更改SDK。

为了获得最佳的用户体验和选择加入率,最好等待Play services更新,而不是自己添加可怕的运行时权限(阅读和比较电话号码)。谢谢你的耐心!

 类似资料:
  • 我一直在尝试使用python selenium自动登录google,但在输入用户名并单击next之后,我收到了消息 这可能是因为网页检测到chrome浏览器由测试自动化软件控制。但是我已经尝试使用以下设置代码排除该开关: 但它仍然不起作用。我用的是Chrome98。 我怎样才能解决这个问题?或者也许有另一种方法可以使用python-selenium和用户名/密码组合自动登录谷歌帐户?

  • 我正在使用依赖项,以利用附带的几个类。但是,由于我想将其集成到现有的应用程序中,我只想使用这些类,而不是spring的默认登录/auth屏幕。 如何禁用此屏幕? 我无法通过扩展进行任何配置,因为我的主入口类已经扩展了。此外,vaadin应用程序基本上一直在相同的URL路径上运行,并使用内部导航。 那么,我能做些什么来禁用登录屏幕,但利用spring的安全功能呢?

  • 我正在使用hybridauth库。 Hybridauth文档说,通过存储会话数据,可以实现持久会话。 假设我在数据库中存储了用户会话数据。它包含oauth令牌、oauth刷新令牌等。。 使用oauth令牌,无需询问用户权限即可联系oauth服务器。 现在一切都好了。现在,如果用户登录到谷歌,如何准确地自动登录用户? ?

  • 我想使用OAuth 2使用Spring Security性保护我的应用程序。但是,我不希望服务器重定向传入的未经授权的请求,而是使用HTTP 401进行响应。可能吗? 示例:此代码将请求重定向到默认登录页面。 应用属性 AuthConfig。JAVA

  • 问题内容: 这是我目前用于注册的内容: 是否可以不要求用户在创建帐户后手动登录,而是简单地自动登录?谢谢。 编辑:我曾尝试过login()函数,但没有成功。我相信问题是未设置AUTHENTICATION_BACKENDS。 问题答案: 使用authenticate()和login()功能:

  • 我有一个网站,其中一个用户登录和等待客户订单。有五个不同的用户,我需要自动化所有用户的登录部分,并需要与每个用户会话等待。但是当我试图用另一个用户登录这个网站时,网站以以前的用户会话打开。selenium java有没有办法实现这种自动化(我是selenium自动化的初学者)。谢了。