Firebase跨设备使用手机号验证码登录的实现与管控相关问题
Firebase手机号跨设备登录相关问题解答
功能支持性
Firebase原生的手机号验证功能完全支持该场景,你可以在Android平板端发起登录请求,用绑定该手机号的其他设备接收验证码后,回填到平板端完成登录,该操作本身没有被Firebase限制。
跨设备登录行为的配置方法
默认情况下Firebase不会拦截跨设备的验证码验证行为,你可以根据需求调整业务逻辑实现控制:
允许跨设备登录
无需额外修改Firebase控制台配置,只需保证客户端实现符合以下要求即可:
- 平板端调用
verifyPhoneNumber接口获取verificationId后,正常本地存储即可,不要额外添加设备绑定的校验逻辑 - 回填验证码时,调用
signInWithCredential接口传入匹配的verificationId和验证码,即可正常完成登录
封禁跨设备登录
Firebase没有提供一键封禁该行为的开关,你需要在自有业务逻辑层添加校验,通用实现方案如下:
- 调用
verifyPhoneNumber接口时,客户端生成符合隐私规范的当前设备唯一标识,将该标识与本次生成的verificationId绑定,上传到你的后端服务存储 - 用户提交验证码时,客户端同时上报当前设备的唯一标识,后端先校验标识与
verificationId绑定的标识是否一致,一致的情况下再将校验请求转发到Firebase,不一致直接拒绝本次登录请求
所有设备校验逻辑必须放在后端服务实现,不要在客户端做校验,避免被恶意篡改绕过。
内容的提问来源于stack exchange,提问作者Konstantin Konopko
相关产品推荐
相关产品推荐

