implement email verification feature, add captcha validation middleware, and enhance user authentication flow

This commit is contained in:
2025-07-22 08:50:16 +08:00
parent 6187425df6
commit a0d215fa2e
26 changed files with 844 additions and 50 deletions

View File

@ -13,6 +13,7 @@ func registerUserRoutes(group *route.RouterGroup) {
{
userGroupWithoutAuthNeedsCaptcha.POST("/login", v1.User.Login)
userGroupWithoutAuthNeedsCaptcha.POST("/register", v1.User.Register)
userGroupWithoutAuthNeedsCaptcha.POST("/email/verify", v1.User.VerifyEmail) // Send email verification code
userGroupWithoutAuth.GET("/oidc/list", v1.User.OidcList)
userGroupWithoutAuth.GET("/oidc/login/:name", v1.User.OidcLogin)
userGroupWithoutAuth.GET("/u/:id", v1.User.Get)

View File

@ -1,25 +1,22 @@
package router
import (
"errors"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/sirupsen/logrus"
"github.com/snowykami/neo-blog/internal/router/apiv1"
"github.com/snowykami/neo-blog/pkg/constant"
"github.com/snowykami/neo-blog/pkg/utils"
)
var h *server.Hertz
func Run() error {
mode := utils.Env.Get("MODE", constant.ModeProd) // dev | prod
switch mode {
case constant.ModeProd:
if utils.IsDevMode {
logrus.Infoln("Running in development mode")
return h.Run()
} else {
logrus.Infoln("Running in production mode")
h.Spin()
return nil
case constant.ModeDev:
return h.Run()
default:
return errors.New("unknown mode: " + mode)
}
}