2025-07-04 19:02:14 +08:00
|
|
|
|
package session
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"blazing/cool"
|
|
|
|
|
|
"context"
|
2025-07-05 22:32:44 +08:00
|
|
|
|
"fmt"
|
2025-07-04 19:02:14 +08:00
|
|
|
|
"strings"
|
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-07-05 22:32:44 +08:00
|
|
|
|
var sessionprx = "blazing:session:"
|
2025-07-04 19:02:14 +08:00
|
|
|
|
|
|
|
|
|
|
// GetSession 通过给定的键从缓存中获取会话数据。
|
|
|
|
|
|
// 该函数主要执行以下操作:
|
|
|
|
|
|
// 1. 使用 strings.Trim 移除输入字符串 t1 两端的空格,得到 t2。
|
|
|
|
|
|
// 2. 调用 cool.CacheManager.Get 方法,在上下文为 context.Background() 的情况下,使用 t2 作为键从缓存中获取数据。
|
|
|
|
|
|
// 参数:
|
|
|
|
|
|
//
|
|
|
|
|
|
// t1 - 用于获取会话数据的键字符串。
|
|
|
|
|
|
func GetSession(t1 string) (userid uint32, err error) {
|
|
|
|
|
|
// 移除输入键两端的空格,以确保键的格式一致性。
|
|
|
|
|
|
t2 := strings.Trim(t1, " ")
|
|
|
|
|
|
|
|
|
|
|
|
// 从缓存中获取与键 t2 关联的数据。这里假设 cool.CacheManager 已经初始化,并且 Get 方法可用。
|
|
|
|
|
|
// 此处不处理 err,可能是因为上层调用者期望处理这个错误,或者在特定上下文中,错误被视为可接受。
|
2025-07-05 22:32:44 +08:00
|
|
|
|
t, err := cool.CacheManager.Get(context.Background(), sessionprx+t2)
|
2025-07-04 19:02:14 +08:00
|
|
|
|
|
|
|
|
|
|
userid = t.Uint32()
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
func SaveSession(session string, userid string) error {
|
|
|
|
|
|
|
2025-07-05 22:32:44 +08:00
|
|
|
|
err := cool.CacheManager.Set(gctx.New(), sessionprx+strings.Trim(session, " "), userid, time.Hour*24)
|
2025-07-04 19:02:14 +08:00
|
|
|
|
// gsvc.SetRegistry(etcd.New(`127.0.0.1:2379`))
|
|
|
|
|
|
//t, err := cool.CacheManager.Contains(context.Background(), strings.Trim(session, " "))
|
|
|
|
|
|
|
2025-07-05 22:32:44 +08:00
|
|
|
|
fmt.Println("前端获取", session, err)
|
2025-07-04 19:02:14 +08:00
|
|
|
|
// if t {
|
|
|
|
|
|
// return nil
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
|
}
|