以下功能失败,并出现错误“Auth Session Missing”
const { error } = await supabase.auth.updateUser({
password: password,
});
在邮件中获取重置密码链接后,我将用户重定向到“/reset”链接。 我得到的链接看起来像这样
https://www.example.com/reset#access_token=eyJhbGciOiJIUzI1NiIsImtpZCI6Ik5rK1VQTmlRYk9RZ2xXMUUiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjg5ODg1MjE2LCJpYXQiOjE2ODk4ODE2MTYsImlzcyI6Imh0dHBzOi8vaHR0cHM6Ly9lbnZtbHBnYXlpd3FidWR2YWh2YS5zdXBhYmFzZS5jby9hdXRoL3YxIiwic3ViIjoiYTZiMzE1MjktNDUxOC00YjkyLTg3MzYtZDZmMTkyNTBmMzZhIiwiZW1haWwiOiJkZWVwc2hldHllMUBnbWFpbC5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODk4ODE2MTZ9XSwic2Vzc2lvbl9pZCI6IjA0YjJlMTRlLThkMDUtNDIwYy1iNmRkLTBjODEzNDhkNjUzZCJ9.AcLI2nO1BbCqCwAgrQ8flIjkvC2kRtKcujfXpqRFVG0&expires_in=3600&refresh_token=rUB74qIa-G3GNh6mpJxWdg&token_type=bearer&type=recovery
但是在提交新密码时我收到错误。
我使用“@supabase/auth-helpers-nextjs”来创建客户端。
某些提供商似乎会自动预加载电子邮件中的 URL,以加快页面加载速度。然而,由于 Supabase 重置链接是为一次性使用而设计的,因此这种预加载操作会导致 URL 过早过期,从而导致用户尝试重置密码时出现错误。
可能的解决方案可能是添加验证码验证或只是一个重定向到 supabase 给出的 url 的按钮
当您调用时,supabase 在浏览器中存储 cookie
const { error } = await supabase.auth.updateUser({
password: password,
});
当您从其他设备或浏览器打开重置密码链接时,它会抛出此错误,因为 cookie 丢失。