mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-03 15:56:22 +00:00
⚡ add .env.example file with configuration settings, refactor environment variable access methods
This commit is contained in:
@ -101,7 +101,7 @@ func (u *userType) VerifyEmail(ctx context.Context, c *app.RequestContext) {
|
||||
}
|
||||
|
||||
func (u *userType) setTokenCookie(c *app.RequestContext, token, refreshToken string) {
|
||||
c.SetCookie("token", token, utils.Env.GetenvAsInt(constant.EnvKeyTokenDuration, constant.EnvKeyTokenDurationDefault), "/", "", protocol.CookieSameSiteLaxMode, true, true)
|
||||
c.SetCookie("token", token, utils.Env.GetAsInt(constant.EnvKeyTokenDuration, constant.EnvKeyTokenDurationDefault), "/", "", protocol.CookieSameSiteLaxMode, true, true)
|
||||
c.SetCookie("refresh_token", refreshToken, -1, "/", "", protocol.CookieSameSiteLaxMode, true, true)
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ func loadDBConfig() DBConfig {
|
||||
Driver: utils.Env.Get("DB_DRIVER", "sqlite"),
|
||||
Path: utils.Env.Get("DB_PATH", "./data/data.db"),
|
||||
Host: utils.Env.Get("DB_HOST", "postgres"),
|
||||
Port: utils.Env.GetenvAsInt("DB_PORT", 5432),
|
||||
Port: utils.Env.GetAsInt("DB_PORT", 5432),
|
||||
User: utils.Env.Get("DB_USER", "blog"),
|
||||
Password: utils.Env.Get("DB_PASSWORD", "blog"),
|
||||
DBName: utils.Env.Get("DB_NAME", "blog"),
|
||||
|
@ -23,7 +23,7 @@ func Run() error {
|
||||
func init() {
|
||||
h = server.New(
|
||||
server.WithHostPorts(":"+utils.Env.Get("PORT", "8888")),
|
||||
server.WithMaxRequestBodySize(utils.Env.GetenvAsInt("MAX_REQUEST_BODY_SIZE", 1048576000)), // 1000MiB
|
||||
server.WithMaxRequestBodySize(utils.Env.GetAsInt("MAX_REQUEST_BODY_SIZE", 1048576000)), // 1000MiB
|
||||
)
|
||||
apiv1.RegisterRoutes(h)
|
||||
}
|
||||
|
@ -36,13 +36,13 @@ func (s *userService) UserLogin(req *dto.UserLoginReq) (*dto.UserLoginResp, erro
|
||||
}
|
||||
if utils.Password.VerifyPassword(req.Password, user.Password, utils.Env.Get(constant.EnvKeyPasswordSalt, "default_salt")) {
|
||||
|
||||
token := utils.Jwt.NewClaims(user.ID, "", false, time.Duration(utils.Env.GetenvAsInt(constant.EnvKeyTokenDuration, 24)*int(time.Hour)))
|
||||
token := utils.Jwt.NewClaims(user.ID, "", false, time.Duration(utils.Env.GetAsInt(constant.EnvKeyTokenDuration, 24)*int(time.Hour)))
|
||||
tokenString, err := token.ToString()
|
||||
if err != nil {
|
||||
return nil, errs.ErrInternalServer
|
||||
}
|
||||
|
||||
refreshToken := utils.Jwt.NewClaims(user.ID, utils.Strings.GenerateRandomString(64), true, time.Duration(utils.Env.GetenvAsInt(constant.EnvKeyRefreshTokenDuration, 30)*int(time.Hour)))
|
||||
refreshToken := utils.Jwt.NewClaims(user.ID, utils.Strings.GenerateRandomString(64), true, time.Duration(utils.Env.GetAsInt(constant.EnvKeyRefreshTokenDuration, 30)*int(time.Hour)))
|
||||
refreshTokenString, err := refreshToken.ToString()
|
||||
if err != nil {
|
||||
return nil, errs.ErrInternalServer
|
||||
@ -65,10 +65,15 @@ func (s *userService) UserLogin(req *dto.UserLoginReq) (*dto.UserLoginResp, erro
|
||||
|
||||
func (s *userService) UserRegister(req *dto.UserRegisterReq) (*dto.UserRegisterResp, error) {
|
||||
// 验证邮箱验证码
|
||||
kv := utils.KV.GetInstance()
|
||||
verificationCode, ok := kv.Get(constant.KVKeyEmailVerificationCode + ":" + req.Email)
|
||||
if !ok || verificationCode != req.VerificationCode {
|
||||
return nil, errs.ErrInvalidCredentials
|
||||
if !utils.Env.GetAsBool("ENABLE_REGISTER", true) {
|
||||
return nil, errs.ErrForbidden
|
||||
}
|
||||
if utils.Env.GetAsBool("ENABLE_EMAIL_VERIFICATION", true) {
|
||||
kv := utils.KV.GetInstance()
|
||||
verificationCode, ok := kv.Get(constant.KVKeyEmailVerificationCode + ":" + req.Email)
|
||||
if !ok || verificationCode != req.VerificationCode {
|
||||
return nil, errs.ErrInvalidCredentials
|
||||
}
|
||||
}
|
||||
// 检查用户名或邮箱是否已存在
|
||||
existingUser, err := repo.User.GetByUsernameOrEmail(req.Username)
|
||||
@ -79,7 +84,6 @@ func (s *userService) UserRegister(req *dto.UserRegisterReq) (*dto.UserRegisterR
|
||||
return nil, errs.New(http.StatusConflict, "Username or email already exists", nil)
|
||||
}
|
||||
// 创建新用户
|
||||
|
||||
newUser := &model.User{
|
||||
Username: req.Username,
|
||||
Nickname: req.Nickname,
|
||||
@ -93,12 +97,12 @@ func (s *userService) UserRegister(req *dto.UserRegisterReq) (*dto.UserRegisterR
|
||||
return nil, errs.ErrInternalServer
|
||||
}
|
||||
// 生成访问令牌和刷新令牌
|
||||
token := utils.Jwt.NewClaims(newUser.ID, "", false, time.Duration(utils.Env.GetenvAsInt(constant.EnvKeyTokenDuration, 24)*int(time.Hour)))
|
||||
token := utils.Jwt.NewClaims(newUser.ID, "", false, time.Duration(utils.Env.GetAsInt(constant.EnvKeyTokenDuration, 24)*int(time.Hour)))
|
||||
tokenString, err := token.ToString()
|
||||
if err != nil {
|
||||
return nil, errs.ErrInternalServer
|
||||
}
|
||||
refreshToken := utils.Jwt.NewClaims(newUser.ID, utils.Strings.GenerateRandomString(64), true, time.Duration(utils.Env.GetenvAsInt(constant.EnvKeyRefreshTokenDuration, 30)*int(time.Hour)))
|
||||
refreshToken := utils.Jwt.NewClaims(newUser.ID, utils.Strings.GenerateRandomString(64), true, time.Duration(utils.Env.GetAsInt(constant.EnvKeyRefreshTokenDuration, 30)*int(time.Hour)))
|
||||
refreshTokenString, err := refreshToken.ToString()
|
||||
if err != nil {
|
||||
return nil, errs.ErrInternalServer
|
||||
|
Reference in New Issue
Block a user