发布于 2026-01-06 0 阅读
0

Supabase Auth:自带 Auth0、Cognito 或 Firebase

Supabase Auth:自带 Auth0、Cognito 或 Firebase

Supabase Auth 有 3 个新公告:

  1. 支持第三方身份验证提供商
  2. 基于手机的多因素身份验证(短信和WhatsApp)
  3. 新增短信和电子邮件身份验证钩子

⚡️更多发布周信息

让我们深入了解一下每个新功能。

更擅长视觉学习?那就看看视频吧!

支持第三方身份验证提供商

主要功能是第三方身份验证

Auth0 代码示例

Supabase 是一个模块化平台。我们的设计理念是让您可以选择与 Postgres 一起使用的产品。您可以使用我们自己的产品(例如 Supabase Auth),也可以使用外部产品(例如 Auth0),理论上,用户体验应该同样出色。

直到今天,使用第三方身份验证产品都需要开发人员将 JWT 转换为与 Supabase Auth 兼容的格式。这既困难又难以维护。

我们已经解决了这个问题。今天,我们将为以下第三方身份验证产品提供一流的支持:

  1. Auth0
  2. AWS Cognito(独立运行或通过 AWS Amplify 运行)
  3. Firebase 身份验证

Firebase Auth 目前处于内部测试阶段,我们仍在不断改进其安全性和开发者体验。如果您对此感兴趣,请注册,我们的团队成员会与您联系。

迁移身份验证提供商可能成本高昂且技术难度大,尤其对于用户基数庞大的应用程序而言更是如此。您可以将 Supabase 的原生身份验证功能与第三方身份验证提供商结合使用,从而实现无缝迁移。

Supabase CLI 支持所有第三方提供商,因此您可以免费评估、测试和开发您的集成。

Supabase 客户端支持如下第三方身份验证:

import { createClient } from '@supabase/supabase-js'

const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
  accessToken: async () => {
    const accessToken = await auth0.getTokenSilently()
    return accessToken
  },
})

Enter fullscreen mode Exit fullscreen mode

基于手机的多因素身份验证

我们已将多因素身份验证 (MFA) 扩展到支持短信和 WhatsApp。

基于电话的代码

我们坚信所有应用程序都应该能够访问开放且安全的身份验证提供商。默认安全不应是一种奢侈品:开发人员应该能够以经济实惠的方式获得安全最佳实践。

大约两年前,我们免费推出了基于 TOTP(应用验证器)的多因素身份验证 (MFA)。从那时起,我们经常听到开发者抱怨:应用验证器对于非技术人员来说难以上手。而基于手机的 MFA 则专为那些希望为用户提供更便捷 MFA 体验的开发者而设计。

没有绝对安全的安全性产品!短信多因素身份验证可能存在一些隐藏的安全隐患——请评估您的应用程序对SIM卡交换攻击的风险承受能力。

代码如下:

// Send an SMS or WhatsApp message to the user
const { data: { challengeId } } = await supabase.auth.mfa.challenge({
  factorId,
})

// To verify the code received by the user
await supabase.auth.mfa.verify({
  factorId,
  challengeId,
  code: '123456',
})

// The user's `aal` claim in the JWT 
// will be upgraded to aal2

Enter fullscreen mode Exit fullscreen mode

短信和电子邮件身份验证钩子

我们新增了一些身份验证钩子,现在支持将 HTTP 端点作为 webhook 使用。

电子邮件钩子

我们收到了不少反馈,指出内置的邮件模板(基于 Go 模板语言)存在局限性。近年来,像Resend 的 React Email这样的邮件渲染库得到了极大的发展。为了方便开发者使用这些库,我们添加了一个“发送邮件”身份验证钩子,您可以使用它来自定义邮件及其发送方式。

短信钩子

Supabase Auth 内置了对 Twilio、Messagebird、Textlocal 和 Vonage 等热门短信发送服务提供商的支持,但我们意识到这种选择可能存在局限性。

今天我们推出了一个新的“发送短信”身份验证钩子。您不再需要使用内置的提供程序——您可以通过指定一个HTTP端点来实现自己的提供程序,该端点会在需要发送消息时接收POST请求。

入门

请查看文档了解更多入门详情:

文章来源:https://dev.to/supabase/supabase-auth-bring-your-own-auth0-cognito-or-firebase-5g2d