Supabase Auth:身份链接、认证钩子与HaveIBeenPwned集成

Supabase Auth:身份链接、认证钩子与HaveIBeenPwned集成

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

Supabase Auth推出了四项新功能:身份链接、会话控制、泄露密码保护和认证钩子。身份链接允许开发者手动关联不同身份;会话控制提供用户会话的时间限制和单一会话选项;泄露密码保护集成了泄露密码API,增强了安全性;认证钩子允许开发者自定义认证流程,支持Postgres函数。

🔎

延伸解读

身份链接的适用场景与启用方式

身份链接允许开发者手动关联两个独立身份,即使它们不共享同一邮箱。这适用于用户拥有多个不同邮箱的账号,或需要合并账号的场景。默认情况下手动链接是禁用的,需在项目仪表板的Auth设置中启用。目前linkIdentity()和unlinkIdentity()方法仅支持OAuth身份,若要链接邮箱或手机身份,需使用updateUser()方法。

会话控制的可用计划与配置选项

会话控制提供三个新设置:时间限制用户会话、非活动超时和单一会话。时间限制强制用户在指定时间后重新登录;非活动超时在用户闲置一段时间后强制重新登录;单一会话限制用户只能有一个活跃会话,保留最近活跃的会话并终止其他会话。这些设置仅在Pro计划及以上可用,开发者需根据业务需求和安全要求进行配置。

泄露密码保护与密码要求

泄露密码保护集成了HaveIBeenPwned.org的Pwned Passwords API,防止用户使用已泄露的密码。Supabase还开源了用于交互该API的Go库。此外,开发者可以在仪表板的Auth设置中指定密码要求,如最小长度、字符组合等,以增强账户安全性。这些功能有助于减少因弱密码或密码重用导致的安全风险。

认证钩子的实现方式与未来支持

认证钩子是Postgres函数,在认证生命周期的关键点同步运行,可自定义JWT声明、MFA验证尝试和密码验证尝试。开发者可以编写PL/pgSQL函数,或使用pg_net发送请求到后端API,或使用plv8以JavaScript编写。目前自托管可用,平台将于下个月推出。此外,Auth Hooks将在2024年第一季度支持webhooks。

❓

Q&A

Supabase Auth的新功能有哪些?

Supabase Auth推出了身份链接、会话控制、泄露密码保护和认证钩子四项新功能。

身份链接功能是如何工作的?

身份链接允许开发者手动关联不同身份,支持OAuth身份的链接和解除链接。

会话控制提供了哪些设置?

会话控制提供时间限制、非活动超时和单一会话选项,增强用户会话管理。

泄露密码保护是如何增强安全性的?

泄露密码保护集成了泄露密码API,防止用户使用已泄露的密码,并允许设置密码要求。

认证钩子有什么用?

认证钩子允许开发者自定义认证流程,通过Postgres函数在认证生命周期的关键点运行。

如何启用身份链接功能?

身份链接功能默认禁用,可以在项目的仪表板Auth设置中启用。

🏷️

标签

➡️

继续阅读