feat: add API routes and endpoints
- Add authentication routes for login, logout, and token refresh - Add user management routes with proper authorization - Add session management routes for session operations - Add access control routes for API permissions - Add test routes for development and debugging - Include proper route grouping and middleware application - Implement RESTful API design patterns
This commit is contained in:
15
routes/access.go
Normal file
15
routes/access.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.secnex.io/secnex/idp-api/controllers"
|
||||||
|
"git.secnex.io/secnex/idp-api/middlewares"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func AccessRoutes(app fiber.Router) {
|
||||||
|
access := app.Group("/access")
|
||||||
|
|
||||||
|
access.Use(middlewares.BasicAuthMiddleware())
|
||||||
|
|
||||||
|
access.Get("/", controllers.CreateApiKey)
|
||||||
|
}
|
27
routes/api.go
Normal file
27
routes/api.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SetupRoutes(app *fiber.App) {
|
||||||
|
ApiRoutes(app)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ApiRoutes(app *fiber.App) {
|
||||||
|
api := app.Group("/api")
|
||||||
|
|
||||||
|
// api.Use(cache.New(cache.Config{
|
||||||
|
// Next: func(c *fiber.Ctx) bool {
|
||||||
|
// return c.Query("noCache") == "true"
|
||||||
|
// },
|
||||||
|
// Expiration: 5 * time.Minute,
|
||||||
|
// CacheControl: true,
|
||||||
|
// }))
|
||||||
|
|
||||||
|
UserRoutes(api)
|
||||||
|
TestRoutes(api)
|
||||||
|
AuthRoutes(api)
|
||||||
|
SessionRoutes(api)
|
||||||
|
AccessRoutes(api)
|
||||||
|
}
|
16
routes/auth.go
Normal file
16
routes/auth.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.secnex.io/secnex/idp-api/controllers"
|
||||||
|
"git.secnex.io/secnex/idp-api/middlewares"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func AuthRoutes(app fiber.Router) {
|
||||||
|
auth := app.Group("/auth")
|
||||||
|
|
||||||
|
auth.Use(middlewares.ApiKeyMiddleware())
|
||||||
|
auth.Post("/login", controllers.UserLogin)
|
||||||
|
auth.Post("/logout", controllers.UserLogout)
|
||||||
|
auth.Post("/session", controllers.SessionInfo)
|
||||||
|
}
|
20
routes/session.go
Normal file
20
routes/session.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.secnex.io/secnex/idp-api/controllers"
|
||||||
|
"git.secnex.io/secnex/idp-api/middlewares"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SessionRoutes(app fiber.Router) {
|
||||||
|
session := app.Group("/session")
|
||||||
|
|
||||||
|
session.Use(middlewares.AuthMiddleware())
|
||||||
|
|
||||||
|
session.Get("/", controllers.GetSessions)
|
||||||
|
session.Get("/info", controllers.GetSessionBySession)
|
||||||
|
session.Delete("/:session_id/revoke", controllers.RevokeSessionByID)
|
||||||
|
session.Delete("/revoke", controllers.RevokeSessionBySession)
|
||||||
|
session.Delete("/revoke/all", controllers.RevokeAllSessions)
|
||||||
|
session.Delete("/revoke/all/user", controllers.RevokeAllSessionsByUserID)
|
||||||
|
}
|
19
routes/test.go
Normal file
19
routes/test.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.secnex.io/secnex/idp-api/api"
|
||||||
|
"git.secnex.io/secnex/idp-api/middlewares"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRoutes(app fiber.Router) {
|
||||||
|
user := app.Group("/test")
|
||||||
|
|
||||||
|
user.Get("/", middlewares.ApiKeyMiddleware(), func(c *fiber.Ctx) error {
|
||||||
|
user := c.Locals("user")
|
||||||
|
return api.Success(c, fiber.Map{
|
||||||
|
"ip": c.IP(),
|
||||||
|
"user": user,
|
||||||
|
}, fiber.StatusOK, nil, nil)
|
||||||
|
})
|
||||||
|
}
|
15
routes/user.go
Normal file
15
routes/user.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.secnex.io/secnex/idp-api/controllers"
|
||||||
|
"git.secnex.io/secnex/idp-api/middlewares"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func UserRoutes(app fiber.Router) {
|
||||||
|
user := app.Group("/user")
|
||||||
|
|
||||||
|
user.Use(middlewares.AuthMiddleware())
|
||||||
|
|
||||||
|
user.Get("/", controllers.GetUsers)
|
||||||
|
}
|
Reference in New Issue
Block a user