Community编程与开发github.com

better-auth/电子邮件与密码最佳实践

配置电子邮件验证、实现密码重置流程、设置密码策略以及自定义Better Auth电子邮件/密码认证的哈希算法。适用于用户需要使用Better Auth设置登录、注册、凭证认证或密码安全性的场景。

电子邮件与密码最佳实践 是什么?

该技能专注于Better Auth框架中电子邮件与密码认证的最佳实践配置。它指导开发者如何启用并配置电子邮件验证功能,确保用户账户的真实性;实现完整的密码重置流程,包括安全令牌生成与验证;同时提供密码策略的设置,如最小长度、复杂度要求等,以增强安全性。此外,技能还涵盖了自定义哈希算法的指南,允许开发者根据安全需求选择合适的算法(如bcrypt、argon2等)。该技能支持Better Auth作为认证库,适用于Node.js环境下的全栈应用。通过遵循这些实践,开发者能够快速搭建安全可靠的认证系统,避免常见的安全漏洞,并提升用户体验。其工作方式基于Better Auth的插件系统,通过配置选项和中间件实现功能。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/better-auth/skills/tree/main/skills/email-and-password-best-practices

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

电子邮件与密码最佳实践 是做什么的?

配置电子邮件验证、实现密码重置流程、设置密码策略以及自定义Better Auth电子邮件/密码认证的哈希算法。适用于用户需要使用Better Auth设置登录、注册、凭证认证或密码安全性的场景。

概述

本指南提供了使用Better Auth实现安全电子邮件与密码认证的推荐方法。Better Auth是一个基于TypeScript的认证库,专为Node.js应用设计,支持多种认证方式,其中电子邮件与密码认证是最常用的方案之一。

功能特性

  • 电子邮件验证:确保用户提供的电子邮件地址真实有效,防止虚假注册。
  • 密码重置流程:允许用户通过安全链接重置遗忘的密码。
  • 密码策略:定义密码的复杂度要求,如最小长度、包含字母与数字等。
  • 自定义哈希算法:选择并使用bcrypt、argon2等哈希算法来安全存储密码。

快速开始

1. 安装Better Auth

npm install better-auth

2. 配置电子邮件与密码认证

在您的应用初始化文件中添加以下配置:

import { BetterAuth } from 'better-auth';
const auth = new BetterAuth({
  emailAndPassword: {
    enabled: true,
    requireEmailVerification: true,
    passwordPolicy: {
      minLength: 8,
      requireUppercase: true,
      requireLowercase: true,
      requireDigit: true,
      requireSpecialCharacter: true
    },
    hashingAlgorithm: 'bcrypt' // 可选: 'bcrypt', 'argon2' 等
  }
});

3. 实现密码重置

密码重置流程通常包括以下步骤:

  • 用户发起重置请求,系统生成一个带有过期时间的令牌。
  • 通过电子邮件将重置链接发送给用户。
  • 用户点击链接后,输入新密码并提交。
  • 服务端验证令牌和密码策略,更新密码。

以下是一个简化的示例:

import { sendPasswordResetEmail } from 'better-auth/email';
audit.on('passwordResetRequest', async (user) => {
  const token = await auth.generateResetToken(user.id);
  await sendPasswordResetEmail(user.email, token);
});
audit.on('passwordReset', async (user) => {
  console.log(`密码已重置: ${user.email}`);
});

最佳实践

  • 始终启用电子邮件验证,以避免未验证用户带来的垃圾邮件风险。
  • 使用强密码策略,平衡安全性与用户体验。
  • 选择社区推荐的哈希算法(如bcrypt或argon2),并定期更新以应对提升的计算能力。
  • 密码重置令牌应设置较短的有效期(通常为15分钟至1小时),并确保通过安全通道(HTTPS)传输。

支持的平台

  • Node.js:v16及以上版本。
  • 框架:Express、Koa、Next.js等。

相关资源

贡献

欢迎提交issues和PR以改进此指南。


本文档由AI辅助生成,请根据实际应用场景调整配置。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

相关技能