| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package routes
-
- import (
- "context"
-
- "git.x2erp.com/qdy/go-base/authbase"
- "git.x2erp.com/qdy/go-base/ctx"
- "git.x2erp.com/qdy/go-base/model/response"
- "git.x2erp.com/qdy/go-base/sdk/configure"
- "git.x2erp.com/qdy/go-base/webx/router"
- )
-
- // RegisterAuthRoutes 注册认证路由
- func RegisterAuthRoutes(ws *router.RouterService, configClient *configure.Client) {
- // 用户登录(公开端点,无需认证)
- ws.POST("/api/auth/login",
- func(req *configure.UserLoginRequest, ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[string], error) {
- token, err := configClient.LoginUser(ctx, req)
- if err != nil {
- return &response.QueryResult[string]{
- Success: false,
- Message: err.Error(),
- }, nil
- }
-
- return &response.QueryResult[string]{
- Success: true,
- Data: token,
- }, nil
- },
- ).Desc("用户登录(返回配置中心token)").Register()
-
- // Token验证端点(需要Token认证,用于测试token有效性)
- ws.POST("/api/auth/validate",
- func(ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[map[string]interface{}], error) {
- // 如果请求能到达这里,说明TokenAuth中间件已经验证了token
- // 返回当前用户信息
- userInfo := map[string]interface{}{
- "user_id": reqCtx.UserID,
- "username": reqCtx.Username,
- "tenant_id": reqCtx.TenantID,
- "project_id": reqCtx.ProjectID,
- "authenticated": true,
- }
- return &response.QueryResult[map[string]interface{}]{
- Success: true,
- Data: userInfo,
- }, nil
- },
- ).Use(authbase.TokenAuth).Desc("验证token有效性并返回用户信息").Register()
-
- // 健康检查端点(公开)
- ws.GET("/api/auth/health",
- func(ctx context.Context, reqCtx *ctx.RequestContext) (*response.QueryResult[map[string]interface{}], error) {
- return &response.QueryResult[map[string]interface{}]{
- Success: true,
- Data: map[string]interface{}{
- "status": "healthy",
- "service": "svc-code-auth",
- },
- }, nil
- },
- ).Desc("认证服务健康检查").Register()
- }
|