初始化
This commit is contained in:
100
server/controller/auth_controller.go
Normal file
100
server/controller/auth_controller.go
Normal file
@@ -0,0 +1,100 @@
|
||||
// Package controller 提供HTTP请求处理层
|
||||
// 负责参数绑定、校验, 调用Service层, 返回响应
|
||||
package controller
|
||||
|
||||
import (
|
||||
"seeyon-filesystem/dto"
|
||||
"seeyon-filesystem/middleware"
|
||||
"seeyon-filesystem/service"
|
||||
"seeyon-filesystem/utils"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// AuthController 认证控制器
|
||||
type AuthController struct {
|
||||
authService *service.AuthService
|
||||
}
|
||||
|
||||
// NewAuthController 创建认证控制器实例
|
||||
func NewAuthController() *AuthController {
|
||||
return &AuthController{
|
||||
authService: service.NewAuthService(),
|
||||
}
|
||||
}
|
||||
|
||||
// Login 用户登录
|
||||
// POST /api/auth/login
|
||||
func (c *AuthController) Login(ctx *gin.Context) {
|
||||
var req dto.LoginRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
utils.BadRequest(ctx, "参数错误: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := c.authService.Login(&req)
|
||||
if err != nil {
|
||||
utils.Unauthorized(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
utils.Success(ctx, resp)
|
||||
}
|
||||
|
||||
// Register 用户注册
|
||||
// POST /api/auth/register
|
||||
func (c *AuthController) Register(ctx *gin.Context) {
|
||||
var req dto.RegisterRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
utils.BadRequest(ctx, "参数错误: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := c.authService.Register(&req); err != nil {
|
||||
utils.BadRequest(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
utils.SuccessWithMessage(ctx, "注册成功", nil)
|
||||
}
|
||||
|
||||
// GetProfile 获取当前用户信息
|
||||
// GET /api/auth/profile
|
||||
func (c *AuthController) GetProfile(ctx *gin.Context) {
|
||||
userID := middleware.GetCurrentUserID(ctx)
|
||||
if userID == 0 {
|
||||
utils.Unauthorized(ctx, "未登录")
|
||||
return
|
||||
}
|
||||
|
||||
role, _ := ctx.Get("role")
|
||||
|
||||
utils.Success(ctx, gin.H{
|
||||
"user_id": userID,
|
||||
"username": middleware.GetCurrentUsername(ctx),
|
||||
"role": role,
|
||||
})
|
||||
}
|
||||
|
||||
// ChangePassword 修改密码
|
||||
// PUT /api/auth/password
|
||||
func (c *AuthController) ChangePassword(ctx *gin.Context) {
|
||||
userID := middleware.GetCurrentUserID(ctx)
|
||||
if userID == 0 {
|
||||
utils.Unauthorized(ctx, "未登录")
|
||||
return
|
||||
}
|
||||
|
||||
var req dto.ChangePasswordRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
utils.BadRequest(ctx, "参数错误: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := c.authService.ChangePassword(userID, &req); err != nil {
|
||||
utils.BadRequest(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
utils.SuccessWithMessage(ctx, "密码修改成功", nil)
|
||||
}
|
||||
Reference in New Issue
Block a user