Frp/users.go
2024-12-24 20:50:42 +08:00

72 lines
1.5 KiB
Go

package main
import (
"Go_Test/config"
"fmt"
"github.com/redis/go-redis/v9"
"time"
)
// InitUser 初始化用户连接
func InitUser(username string, password string) error {
// 创建Redis客户端连接
RedisClient = redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "123456",
DB: 1,
})
/*
// 测试连接
_, err := RedisClient.Ping(ctx).Result()
if err != nil {
return fmt.Errorf("redis连接失败: %v", err)
}
fmt.Println("redis连接成功")
*/
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
}