Files
neo-blog/pkg/constant/constant.go
Snowykami b0b32c93d1 feat: add email verification and password reset functionality
- Introduced environment variables for database and email configurations.
- Implemented email verification code generation and validation.
- Added password reset feature with email verification.
- Updated user registration and profile management APIs.
- Refactored user security settings to include email and password updates.
- Enhanced console layout with internationalization support.
- Removed deprecated settings page and integrated global settings.
- Added new reset password page and form components.
- Updated localization files for new features and translations.
2025-09-23 00:33:34 +08:00

90 lines
6.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package constant
const (
CaptchaTypeDisable = "disable" // 禁用验证码
CaptchaTypeHCaptcha = "hcaptcha" // HCaptcha验证码
CaptchaTypeTurnstile = "turnstile" // Turnstile验证码
CaptchaTypeReCaptcha = "recaptcha" // ReCaptcha验证码
ContextKeyUserID = "user_id" // 上下文键用户ID
ContextKeyRemoteAddr = "remote_addr" // 上下文键:远程地址
ContextKeyUserAgent = "user_agent" // 上下文键:用户代理
ModeDev = "dev"
ModeProd = "prod"
RoleUser = "user" // 普通用户 仅有阅读和评论权限
RoleEditor = "editor" // 能够发布和管理自己内容的用户
RoleAdmin = "admin"
DefaultFileBasePath = "./data/uploads"
EnvKeyBaseUrl = "BASE_URL" // 环境变量基础URL
EnvKeyCaptchaProvider = "CAPTCHA_PROVIDER" // captcha提供者
EnvKeyCaptchaSecreteKey = "CAPTCHA_SECRET_KEY" // captcha站点密钥
EnvKeyCaptchaUrl = "CAPTCHA_URL" // 某些自托管的captcha的url
EnvKeyCaptchaSiteKey = "CAPTCHA_SITE_KEY" // captcha密钥key
EnvKeyDBDriver = "DB_DRIVER" // 环境变量:数据库驱动
EnvKeyDBPath = "DB_PATH" // 环境变量数据库文件路径仅适用于SQLite
EnvKeyDBHost = "DB_HOST" // 环境变量数据库主机仅适用于PostgreSQL
EnvKeyDBPort = "DB_PORT" // 环境变量数据库端口仅适用于PostgreSQL
EnvKeyDBUser = "DB_USER" // 环境变量数据库用户仅适用于PostgreSQL
EnvKeyDBPassword = "DB_PASSWORD" // 环境变量数据库密码仅适用于PostgreSQL
EnvKeyDBName = "DB_NAME" // 环境变量数据库名称仅适用于PostgreSQL
EnvKeyDBSSLMode = "DB_SSLMODE" // 环境变量数据库SSL模式仅适用于PostgreSQL
EnvKeyEmailAddress = "EMAIL_ADDRESS"
EnvKeyEmailEnable = "EMAIL_ENABLE"
EnvKeyEmailHost = "EMAIL_HOST"
EnvKeyEmailPort = "EMAIL_PORT"
EnvKeyEmailUsername = "EMAIL_USERNAME"
EnvKeyEmailPassword = "EMAIL_PASSWORD"
EnvKeyEmailSsl = "EMAIL_SSL"
EnvKeyEnableRegister = "ENABLE_REGISTER"
EnvKeyEnableEmailVerify = "ENABLE_EMAIL_VERIFY"
EnvKeyFileDriverType = "FILE_DRIVER_TYPE"
EnvKeyFileBasepath = "FILE_BASEPATH"
EnvKeyFileWebdavUrl = "FILE_WEBDAV_URL"
EnvKeyFileWebdavPassword = "FILE_WEBDAV_PASSWORD"
EnvKeyFileWebdavPolicy = "FILE_WEBDAV_POLICY"
EnvKeyFileWebdavUser = "FILE_WEBDAV_USER"
EnvKeyLocationFormat = "LOCATION_FORMAT" // 环境变量:时区格式
EnvKeyLogLevel = "LOG_LEVEL" // 环境变量:日志级别
EnvKeyMode = "MODE" // 环境变量:运行模式
EnvKeyJwtSecrete = "JWT_SECRET" // 环境变量JWT密钥
EnvKeyPasswordSalt = "PASSWORD_SALT" // 环境变量:密码盐
EnvKeyTokenDuration = "TOKEN_DURATION" // 环境变量:令牌有效期
EnvKeyMaxReplyDepth = "MAX_REPLY_DEPTH" // 环境变量:最大回复深度
EnvKeyTokenDurationDefault = 500 // Token有效时长
EnvKeyRefreshTokenDurationDefault = 6000000 // refresh token有效时长
EnvKeyRefreshTokenDuration = "REFRESH_TOKEN_DURATION" // 环境变量:刷新令牌有效期
EnvKeyRefreshTokenDurationWithRemember = "REFRESH_TOKEN_DURATION_WITH_REMEMBER" // 环境变量:记住我刷新令牌有效期
FileDriverTypeLocal = "local"
FileDriverTypeWebdav = "webdav"
FileDriverTypeS3 = "s3"
HeaderKeyEmail = "X-Email"
HeaderKeyVerifyCode = "X-VerifyCode"
KVKeyEmailVerificationCode = "email_verification_code:" // KV存储邮箱验证码
KVKeyOidcState = "oidc_state:" // KV存储OIDC状态
ApiSuffix = "/api/v1" // API版本前缀
OidcUri = "/user/oidc/login" // OIDC登录URI
OidcProviderTypeMisskey = "misskey" // OIDC提供者类型Misskey
OidcProviderTypeOauth2 = "oauth2" // OIDC提供者类型GitHub
DefaultBaseUrl = "http://localhost:3000" // 默认BaseUrl
DefaultPasswordSalt = "default_salt_114514"
TargetTypePost = "post"
TargetTypeComment = "comment"
WebdavPolicyProxy = "proxy"
WebdavPolicyRedirect = "redirect"
OrderByCreatedAt = "created_at" // 按创建时间排序
OrderByUpdatedAt = "updated_at" // 按更新时间排序
OrderByLikeCount = "like_count" // 按点赞数排序
OrderByCommentCount = "comment_count" // 按评论数排序
OrderByViewCount = "view_count" // 按浏览量排序
OrderByHeat = "heat"
MaxReplyDepthDefault = 3 // 默认最大回复深度
HeatFactorViewWeight = 1 // 热度因子:浏览量权重
HeatFactorLikeWeight = 5 // 热度因子:点赞权重
HeatFactorCommentWeight = 10 // 热度因子:评论权重
PageLimitDefault = 20 // 默认分页大小
)
var (
OrderByEnumPost = []string{OrderByCreatedAt, OrderByUpdatedAt, OrderByLikeCount, OrderByCommentCount, OrderByViewCount, OrderByHeat} // 帖子可用的排序方式
OrderByEnumComment = []string{OrderByCreatedAt, OrderByUpdatedAt, OrderByCommentCount} // 评论可用的排序方式
)