72 lines
1.5 KiB
Go
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
|
|
}
|