feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
This commit is contained in:
39
Web开发/02go-gin-middleware/middleware_auth.go
Normal file
39
Web开发/02go-gin-middleware/middleware_auth.go
Normal file
@@ -0,0 +1,39 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user