2022-10-06 16:41:32 +08:00
|
|
|
package auth
|
2022-10-06 17:05:15 +08:00
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gofiber/fiber/v2"
|
2022-10-06 17:23:22 +08:00
|
|
|
"gofiber.study.skcks.cn/common/errorx"
|
|
|
|
"gofiber.study.skcks.cn/common/response"
|
2022-10-06 17:05:15 +08:00
|
|
|
"gofiber.study.skcks.cn/controller/types"
|
2022-10-06 17:23:22 +08:00
|
|
|
"gofiber.study.skcks.cn/dto"
|
|
|
|
"gofiber.study.skcks.cn/global"
|
|
|
|
"gofiber.study.skcks.cn/model/generic/models"
|
2022-10-06 17:05:15 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
type Controller struct {
|
|
|
|
*types.Controller
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Controller) GetRouter() fiber.Router {
|
|
|
|
return c.Router
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewController(app *fiber.App) *Controller {
|
|
|
|
return &Controller{
|
|
|
|
Controller: types.NewController(app, "/auth"),
|
|
|
|
}
|
|
|
|
}
|
2022-10-06 17:23:22 +08:00
|
|
|
|
|
|
|
// Login 用户登录
|
|
|
|
//
|
|
|
|
// @Summary 用户登录
|
|
|
|
// @Description 用户登录
|
|
|
|
// @Tags Auth
|
|
|
|
// @Accept json
|
|
|
|
// @Produce json
|
|
|
|
// @Param vo body dto.Login true "用户登录"
|
|
|
|
// @Success 200 {object} response.Response{data=string}
|
|
|
|
// @Failure default {object} errorx.CodeErrorResponse
|
|
|
|
// @Router /auth/login [post]
|
|
|
|
func (c *Controller) Login() {
|
|
|
|
c.Router.Post("login", func(ctx *fiber.Ctx) error {
|
|
|
|
login := &dto.Login{}
|
|
|
|
err := ctx.BodyParser(login)
|
|
|
|
if err = errorx.ParseError(err); err != nil {
|
|
|
|
return ctx.JSON(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
user := &models.User{Account: login.Account, Password: login.Password}
|
|
|
|
exist, err := global.DataSources.Get(user)
|
|
|
|
if err = errorx.ParseError(err); err != nil {
|
|
|
|
return ctx.JSON(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if !exist {
|
|
|
|
return ctx.JSON(errorx.NewDefaultError("账号或密码错误"))
|
|
|
|
}
|
|
|
|
|
|
|
|
token, err := global.GetToken(global.UserClaims{
|
|
|
|
Id: user.Id,
|
|
|
|
Account: user.Account,
|
|
|
|
})
|
|
|
|
if err = errorx.ParseError(err); err != nil {
|
|
|
|
return ctx.JSON(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return ctx.JSON(response.NewResponse(token))
|
|
|
|
})
|
|
|
|
}
|