我正在Android模拟器上使用Supabase与手机授权构建一个react native应用程序。
我已经设置了我的twilio和Supabase,但是当我调用Supabase .auth. signup()时,它不会向我的电话号码发送OTP。这是我的代码:
async函数signInWithPhoneNumber() {
让{数据,错误}=等待supabase.auth。signUp(
{phone: '+61 xxx xxx xxx',
password: 'some-password'})
setConfirm(data);
console.log(data)
if (error) {
console.log('error')
return}}
我只是有一个按钮调用这个函数。"xxx xxx xxx"是我实际号码的占位符。我也试着使用Twilio提供的电话号码,但没有成功。我的twilio账户运行良好,因为我可以从twilio向我的真实手机发送消息。我正确地输入了Supabase的电话验证细节。
我的'data'的日志给我:{"session": null, "user": null}
如果我要记录实际的错误,它给我:[AuthRetryableFetchError: Network request failed]
有人知道这个问题吗?
谢谢!
我不认为你可以使用手机认证密码:只有OTP。你试过以下方法吗?
await supabase.auth.signInWithOtp({
phone: '+61xxxxxxxxx',
})
await supabase.auth.verifyOtp({
phone: '+61xxxxxxxxx',
token: 'xxxxxx',
type: 'sms'
})
参见:
- https://supabase.com/docs/reference/javascript/auth-signinwithotp
- https://supabase.com/docs/reference/javascript/auth-verifyotp