Swift Firebase:如何获取当前用户密码或验证密码不等于指定值
Firebase Auth Swift 相关问题解答
无法直接获取当前用户密码:Firebase Auth出于安全设计,不会存储用户的明文密码,也不提供任何API让客户端直接获取已登录用户的密码。用户密码会经过哈希处理后存储在Firebase服务器,客户端完全无法获取原始密码内容。
验证密码是否不等于指定值的实现方式:你无法直接对比Firebase存储的密码与指定值,但可以通过重新验证用户身份的方式间接实现:
- 提示用户输入当前使用的密码
- 调用Firebase Auth的
reauthenticate(with:)方法验证输入的密码是否有效 - 验证成功后,直接判断用户输入的密码是否等于指定值"acertainvalue"
示例Swift代码:
guard let currentUser = Auth.auth().currentUser else { return } // 根据用户输入的密码创建凭证 let credential = EmailAuthProvider.credential(withEmail: currentUser.email!, password: userInputPassword) // 重新验证用户身份 currentUser.reauthenticate(with: credential) { _, error in if let error = error { // 输入的密码不正确 print("密码验证失败:\(error.localizedDescription)") } else { // 密码验证成功,判断是否等于指定值 if userInputPassword != "acertainvalue" { print("密码不等于指定值") } else { print("密码等于指定值") } } }
内容的提问来源于stack exchange,提问作者user19534819
相关产品推荐
相关产品推荐

