35 lines
691 B
Go
35 lines
691 B
Go
package middleware
|
|
|
|
import (
|
|
"gitee.ltd/lxh/wechat-robot/internal/config"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
// IsAuthenticated 检查用户是否已登录
|
|
func IsAuthenticated(c *fiber.Ctx) bool {
|
|
token := c.Cookies("auth_token")
|
|
if token == "" {
|
|
return false
|
|
}
|
|
|
|
// 加载配置
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
// 对比token (简单实现,实际应用可能需要更复杂的验证)
|
|
return token == cfg.Auth.SecretKey
|
|
}
|
|
|
|
// Authenticate 创建身份验证中间件
|
|
func Authenticate() fiber.Handler {
|
|
return func(c *fiber.Ctx) error {
|
|
// 检查是否已登录
|
|
if !IsAuthenticated(c) {
|
|
return c.Redirect("/login")
|
|
}
|
|
return c.Next()
|
|
}
|
|
}
|