SuperAPI AI 工具集

netlify-identity

安全与审计

查看项目

更新于 10-16 01:35

技能介绍

用途:为 Netlify 站点添加用户认证。使用 @netlify/identity(npm),新项目不再使用旧的 netlify-identity-widget 和 gotrue-js。安装:npm install @netlify/identity。

主要能力:客户端提供 signup、login、logout、getUser、oauthLogin、handleAuthCallback、recoverPassword、acceptInvite、refreshSession;OAuth 支持 google、github、gitlab、bitbucket。服务端在 Netlify Functions 与 Edge Functions 中可用 getUser(),admin.* 仅在 Netlify Functions 中运行。支持角色检查(user.roles)、身份事件函数(userValidate、userSignup、userLogin、userModified、userDeleted)、CDN 边缘 RBAC 重定向规则、审计日志(Pro 及以上)、外部 JWT 提供方(Enterprise)。

使用方式:OAuth 落地页必须调用 handleAuthCallback(),否则 OAuth 重定向、邮件确认、密码恢复和邀请链接无法完成。启动时调用 getSettings() 动态渲染注册表单和 OAuth 按钮,不要硬编码提供方。服务端认证端点需调用 verifyRequestOrigin(req) 防 CSRF。服务端 getUser()/login()/admin.* 要求 v2 函数(export default),v1 的 export { handler } 不支持。角色变更不会立即生效,需下次登录或刷新令牌,可用 refreshSession() 强制刷新。

限制:Identity 在 netlify dev 下不工作,需在部署(含 Deploy Previews)上测试认证流程。配置仅能在仪表盘完成,无公开 API,不要 curl api.netlify.com 或探测未公开端点。不要自行实现第三方 OAuth 流程。自定义 SMTP 发件人与模板、审计日志需 Pro 及以上;外部 JWT 提供方需 Enterprise,且不能与 Netlify Identity 同时启用。站点级访问控制应使用 netlify-access-control,Identity 仅负责应用层用户。