Files
learn-golang/Web开发/02go-gin-middleware/middleware_auth.go
liumangmang b010f82221 feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能
- 集成Gin、GORM、Viper、Zap等框架
- 添加密码加密、数据库操作、中间件等完整功能
- 配置多环境支持、日志轮转、CORS处理
- 创建完整的项目结构和配置文件体系
2025-12-30 18:00:42 +08:00

40 lines
788 B
Go

package main
import (
"github.com/gin-gonic/gin"
)
// 基础认证中间件
func BasicAuth() gin.HandlerFunc {
return func(c *gin.Context) {
username, password, ok := c.Request.BasicAuth()
if !ok || username != "admin" || password != "password123" {
c.JSON(401, gin.H{"error": "Unauthorized"})
c.Abort()
return
}
// 认证成功,继续
c.Set("username", username) // 将用户信息存储在 context 中
c.Next()
}
}
func main() {
r := gin.Default()
// 公开路由
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "Public endpoint"})
})
// 需要认证的路由
r.GET("/protected", BasicAuth(), func(c *gin.Context) {
username := c.GetString("username")
c.JSON(200, gin.H{"message": "Hello " + username})
})
r.Run(":9999")
}