李寻欢 6f766c957d
Some checks failed
BuildImage / build-image (push) Has been cancelled
🆕 登录新增Logto兼容
2025-04-22 17:05:51 +08:00

49 lines
882 B
Go

package types
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/session"
)
// LogtoSessionStorage
// @description: 实现Logto会话存储接口
type LogtoSessionStorage struct {
Store *session.Store
Ctx *fiber.Ctx
}
// GetItem
// @description: 获取会话项
// @receiver storage
// @param key
// @return string
func (storage *LogtoSessionStorage) GetItem(key string) string {
sess, err := storage.Store.Get(storage.Ctx)
if err != nil {
return ""
}
v := sess.Get(key)
if v == nil {
return ""
}
str, ok := v.(string)
if !ok {
return ""
}
return str
}
// SetItem
// @description: 设置会话项
// @receiver storage
// @param key
// @param value
func (storage *LogtoSessionStorage) SetItem(key, value string) {
sess, err := storage.Store.Get(storage.Ctx)
if err != nil {
return
}
sess.Set(key, value)
_ = sess.Save()
}