feat: auth.
This commit is contained in:
@ -4,20 +4,41 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"hr_receiver/controllers"
|
||||
"hr_receiver/middleware"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func SetupRouter() *gin.Engine {
|
||||
jwtService := middleware.NewJWTService(middleware.ApiSecret, middleware.TokenExp)
|
||||
r := gin.Default()
|
||||
r.Use(middleware.GzipMiddleware())
|
||||
trainingController := controllers.NewTrainingController()
|
||||
|
||||
v1 := r.Group("/api/v1")
|
||||
{
|
||||
records := v1.Group("/train-records")
|
||||
records := v1.Group("/train-records").Use(middleware.AuthMiddleware())
|
||||
{
|
||||
records.POST("", trainingController.CreateTrainingRecord)
|
||||
// 可扩展其他路由:GET, PUT, DELETE等
|
||||
}
|
||||
auth := v1.Group("/auth")
|
||||
{
|
||||
auth.GET("/token", func(c *gin.Context) {
|
||||
|
||||
clientSecret := c.GetHeader("X-API-Key")
|
||||
if clientSecret != middleware.ApiSecret {
|
||||
c.JSON(http.StatusUnauthorized, gin.H{"error": "invalid secret"})
|
||||
return
|
||||
}
|
||||
|
||||
token, err := jwtService.GenerateToken()
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to generate token"})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"token": token})
|
||||
})
|
||||
}
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user