React中使用Supabase调用resetPasswordForEmail提示未定义的问题
解决Supabase重置密码时
resetPasswordForEmail函数未定义的问题 问题核心是Supabase JS SDK版本差异导致的调用方式变化:
- 若使用Supabase JS SDK v2及以上版本,
auth.api层级已被移除,resetPasswordForEmail方法直接挂载在supabase.auth对象下,原代码里的supabase.auth.api.resetPasswordForEmail调用方式不再有效。
修正后的代码
const { data, error } = await supabase.auth.resetPasswordForEmail(email); if (data) { console.log(data); } if (error) { console.log(error); }
可选:配置密码重置跳转链接
如果需要指定用户点击重置邮件后的跳转页面,可添加第二个参数:
const { data, error } = await supabase.auth.resetPasswordForEmail(email, { redirectTo: `${window.location.origin}/reset-password` });
额外检查项
- 确认
package.json中@supabase/supabase-js的版本号≥2.0.0; - 确保Supabase客户端初始化正确:
import { createClient } from '@supabase/supabase-js'; const supabase = createClient(process.env.REACT_APP_SUPABASE_URL, process.env.REACT_APP_SUPABASE_ANON_KEY);
内容的提问来源于stack exchange,提问作者Masopha Nkhahle
相关产品推荐
相关产品推荐

