Frp/users.go
2024-12-27 19:41:54 +08:00

72 lines
1.5 KiB
Go

package main
import (
"Go_Test/config"
"fmt"
"time"
)
// ConnectRedis 连接Redis
func ConnectRedis() error {
var err error
RedisClient, err = config.NewRedisClient(1)
if err != nil {
return fmt.Errorf("failed to connect to Redis: %v", err)
}
return nil
}
// InitUser 初始化用户连接
func InitUser(username string, password string) error {
// 连接Redis
err := ConnectRedis()
if err != nil {
return err
}
SaveUserToRedis(GetUsernameAndPassword(username, password))
return nil
}
// 获取 username 和 password
func GetUsernameAndPassword(username string, password string) config.UserConfig {
// 将用户信息保存到 UserConfig 结构体中
UserConfig := config.UserConfig{
Username: username,
Password: password,
LoginTime: time.Now().Format("2006-01-02 15:04:05"),
}
return UserConfig
}
// 将用户信息保存到 Redis 中
func SaveUserToRedis(UserConfig config.UserConfig) error {
// 使用用户名作为 Redis 的 key
key := UserConfig.Username
// 将用户信息保存到 Redis 中
err := RedisClient.HSet(ctx, key,
"username", UserConfig.Username,
"password", UserConfig.Password,
"login_time", UserConfig.LoginTime,
).Err()
if err != nil {
return fmt.Errorf("保存用户信息失败: %v", err)
}
//设置过期时间
err = RedisClient.Expire(ctx, key, 24*time.Hour).Err()
if err != nil {
return fmt.Errorf("设置过期时间失败: %v", err)
}
fmt.Println("用户信息保存成功")
return nil
}