无需注册的 iOS Firebase OTP 验证
Posted
技术标签:
【中文标题】无需注册的 iOS Firebase OTP 验证【英文标题】:iOS Firebase OTP verification without Sign Up 【发布时间】:2021-06-21 01:22:20 【问题描述】:我需要帮助以使用 Firebase 验证 OTP。 我设法收到带有 OTP 的短信,但是当我验证它时,我会自动注册,而且我只知道我注册后 OTP 是否有效 - 否则我会收到类似“无效 otp”的弹出窗口。 如何手动验证 otp?我的目标是打开另一个屏幕,用户可以在其中输入更多信息。
func verifyCode()
let credential = PhoneAuthProvider.provider().credential(withVerificationID: self.CODE, verificationCode: code)
print(credential)
loading = true
//here i just want to verify my OTP without signing in...
Auth.auth().signIn(with: credential) (result, err) in //here i am signing in...
self.loading = false
if let error = err
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.error)
self.code = ""
self.errorMsg = error.localizedDescription
withAnimation self.error.toggle()
return
self.gotoRegistration = true
withAnimationself.status = true
【问题讨论】:
【参考方案1】:如果不让用户自动登录,就无法使用 Firebase 身份验证的电话/OTP 提供商。
但用户登录 Firebase 的事实并不意味着您必须授予他们访问您应用中所有部分/数据的权限。如果您希望他们提供更多信息,您可以在他们登录 Firebase 之前或之后这样做,并且就用户而言,使其成为同一注册流程的一部分。
比如:
// Sign the user in with Firebase
// Check if the user has provider the additional registration information
// If not, send them to the registration information screen
// If so, send them to the next screen of the app
您还可以在后端代码中或(如果您使用 Firebase 的后端服务之一)在server-side security rules 中强制执行这些规则。
【讨论】:
以上是关于无需注册的 iOS Firebase OTP 验证的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase android 验证收到的用于手机号码验证的 OTP
在 Flutter 中使用 Firebase 电话身份验证超时后使 OTP 无效