refactor: auth.

This commit is contained in:
2026-04-29 10:18:12 +08:00
parent 84217c929e
commit 5f491b1375
2 changed files with 25 additions and 18 deletions
+2
View File
@@ -31,6 +31,8 @@ func (s *JWTService) GenerateToken() (string, error) {
claims := jwt.MapClaims{
"exp": time.Now().Add(s.expiresIn).Unix(),
"iat": time.Now().Unix(),
"tokenType": "device",
"issuedBy": "device-auth",
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
+21 -16
View File
@@ -17,6 +17,26 @@ func SetupRouter() *gin.Engine {
kindergartenAdminController := controllers.NewKindergartenAdminController()
userAdminController := controllers.NewUserAdminController()
systemDebugController := controllers.NewSystemDebugController()
deviceTokenHandler := 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,
"tokenType": "device",
})
}
r.GET("/auth/token", deviceTokenHandler)
v1 := r.Group("/api/v1")
{
@@ -69,22 +89,7 @@ func SetupRouter() *gin.Engine {
}
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})
})
auth.GET("/token", deviceTokenHandler)
}
}
return r