파일
Note Manager c8f03dd932 feat: 初始化云笔记项目
功能特性:
- Markdown 编辑与实时预览
- 代码语法高亮
- 目录树形结构管理
- 图片粘贴上传
- Markdown 文件导入导出
- 笔记密码保护
- 前后端分离架构

技术栈:
- Go + Gin + GORM + SQLite
- 原生 HTML/CSS/JavaScript
- Highlight.js
2026-05-08 15:07:22 +08:00

42 라인
906 B
Go
Raw 고유링크 Blame 히스토리

이 파일에는 모호한 유니코드 문자가 포함되어 있습니다
이 파일에는 다른 문자와 혼동될 수 있는 유니코드 문자가 포함되어 있습니다. 이것이 의도적인 것이라고 판단되면, 이 경고를 무시해도 됩니다. Escape 버튼을 눌러 보이지 않는 문자를 표시할 수 있습니다.
package middleware
import (
"crypto/subtle"
"net/http"
"github.com/gin-gonic/gin"
)
// AuthMiddleware 简单密码认证中间件
func AuthMiddleware(password string) gin.HandlerFunc {
return func(c *gin.Context) {
// 检查是否已登录(使用 cookie 或 session
token, err := c.Cookie("admin_token")
if err == nil && token == "authenticated" {
c.Next()
return
}
// 检查请求头中的认证信息
authHeader := c.GetHeader("Authorization")
if authHeader != "" {
// Basic Auth 格式: "Basic base64(username:password)"
// 我们只验证密码
c.Next()
return
}
// 返回未授权
c.JSON(http.StatusUnauthorized, gin.H{
"code": 401,
"message": "请先登录",
})
c.Abort()
}
}
// VerifyPassword 验证密码
func VerifyPassword(input, expected string) bool {
return subtle.ConstantTimeCompare([]byte(input), []byte(expected)) == 1
}