我有一个 Supabase Edge Function,可以使用 Admin SDK 创建新用户。本周的某个时候,它停止工作,我会收到以下错误:
电子邮件地址未经授权,无法使用
我没有改变任何东西所以我不确定它现在为什么会坏掉。
代码:
import { serve } from "https://deno.land/std@0.168.0/http/server.ts"
import { createClient } from "https://esm.sh/@supabase/supabase-js@2.45.3"
const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type',
}
serve(async (req) => {
if (req.method === 'OPTIONS') {
return new Response('ok', { headers: corsHeaders })
}
try {
const { email, password } = await req.json()
const supabaseClient = createClient(
Deno.env.get('SUPABASE_URL') ?? '',
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY') ?? '',
{ auth: { autoRefreshToken: false, persistSession: false } }
)
const { data, error } = await supabaseClient.auth.admin.createUser({
email,
password,
email_confirm: true
})
if (error) {
throw error
}
return new Response(JSON.stringify({ user: data.user }), {
headers: { ...corsHeaders, 'Content-Type': 'application/json' },
status: 200,
})
} catch (error) {
return new Response(JSON.stringify({ error: error.message }), {
headers: { ...corsHeaders, 'Content-Type': 'application/json' },
status: 400,
})
}
})
最佳答案
1
事实证明,Supabase 平台发生了变化,现在要求您为电子邮件注册设置,即使您已关闭电子邮件确认功能。
为了解决这个问题,我建立了一个免费的重新发送帐户,并在 Supabase 中的项目设置 -> 身份验证 -> SMTP 设置下添加了重新发送凭据。
此博客展示了如何使用 Resend 执行此操作:
Github 讨论:
变更日志更新(2024 年 9 月 18 日):
1
-
那么,如果我不设置自定义 SMTP,我将继续收到此错误?电子邮件地址无法使用,因为它未经授权
–
|
|