feat: add captcha support for user login and enhance user profile page

- Refactored userLogin function to include captcha handling.
- Introduced getCaptchaConfig API to fetch captcha configuration.
- Added Captcha component to handle different captcha providers (hCaptcha, reCaptcha, Turnstile).
- Updated LoginForm component to integrate captcha verification.
- Created UserProfile component to display user information with avatar.
- Implemented getUserByUsername API to fetch user details by username.
- Removed deprecated LoginRequest interface from user model.
- Enhanced navbar and layout with animation effects.
- Removed unused user page component and added dynamic user profile routing.
- Updated localization files to include captcha-related messages.
- Improved Gravatar component for better avatar handling.
This commit is contained in:
2025-09-10 21:15:36 +08:00
parent a7da023b1e
commit 4781d81869
28 changed files with 1048 additions and 701 deletions

View File

@ -12,16 +12,16 @@ type captchaUtils struct{}
var Captcha = captchaUtils{}
type CaptchaConfig struct {
Type string
SiteSecret string // Site secret key for the captcha service
SecretKey string // Secret key for the captcha service
Type string
SiteKey string // Site secret key for the captcha service
SecretKey string // Secret key for the captcha service
}
func (c *captchaUtils) GetCaptchaConfigFromEnv() *CaptchaConfig {
return &CaptchaConfig{
Type: Env.Get("CAPTCHA_TYPE", "disable"),
SiteSecret: Env.Get("CAPTCHA_SITE_SECRET", ""),
SecretKey: Env.Get("CAPTCHA_SECRET_KEY", ""),
Type: Env.Get(constant.EnvKeyCaptchaProvider, constant.CaptchaTypeDisable),
SiteKey: Env.Get(constant.EnvKeyCaptchaSiteKey, ""),
SecretKey: Env.Get(constant.EnvKeyCaptchaSecreteKey, ""),
}
}