登陆状态检查
This commit is contained in:
parent
ab93bd397a
commit
77be5fce3a
@ -16,6 +16,7 @@ type IHelloV1 interface {
|
||||
type IAuthV1 interface {
|
||||
AuthRegister(ctx context.Context, req *request.RegisterReq) (res *request.RegisterRes, err error)
|
||||
AuthLogin(ctx context.Context, req *request.LoginReq) (res *request.LoginRes, err error)
|
||||
AuthCheck(ctx context.Context, req *request.CheckReq) (res *request.CheckRes, err error)
|
||||
}
|
||||
|
||||
type ITokenV1 interface {
|
||||
|
@ -10,6 +10,10 @@ type RegisterReq struct {
|
||||
type LoginReq struct {
|
||||
g.Meta `path:"/login" tags:"登录" method:"get" summary:"登录账号"`
|
||||
}
|
||||
type CheckReq struct {
|
||||
g.Meta `path:"/check" tags:"检查登录" method:"get" summary:"检查登录"`
|
||||
}
|
||||
|
||||
type RegisterRes struct{}
|
||||
type LoginRes struct{}
|
||||
type CheckRes struct{}
|
||||
|
@ -14,7 +14,7 @@ import (
|
||||
// AuthRegister
|
||||
//
|
||||
// 用户注册
|
||||
func (_ *ControllerV1) AuthRegister(ctx context.Context, _ *request.RegisterReq) (res *request.RegisterRes, err error) {
|
||||
func (*ControllerV1) AuthRegister(ctx context.Context, _ *request.RegisterReq) (res *request.RegisterRes, err error) {
|
||||
userRegister := entity.UserRegisterVO{}
|
||||
req := ghttp.RequestFromCtx(ctx)
|
||||
// 获取 model 表单信息
|
||||
@ -34,7 +34,7 @@ func (_ *ControllerV1) AuthRegister(ctx context.Context, _ *request.RegisterReq)
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (_ *ControllerV1) AuthLogin(ctx context.Context, _ *request.LoginReq) (res *request.LoginRes, err error) {
|
||||
func (*ControllerV1) AuthLogin(ctx context.Context, _ *request.LoginReq) (res *request.LoginRes, err error) {
|
||||
userLogin := entity.UserLoginVO{}
|
||||
req := ghttp.RequestFromCtx(ctx)
|
||||
// 获取 model 表单信息
|
||||
@ -53,3 +53,14 @@ func (_ *ControllerV1) AuthLogin(ctx context.Context, _ *request.LoginReq) (res
|
||||
}
|
||||
return res, err
|
||||
}
|
||||
|
||||
// AuthCheck
|
||||
//
|
||||
// 检查登录
|
||||
func (*ControllerV1) AuthCheck(ctx context.Context, _ *request.CheckReq) (res *request.CheckRes, err error) {
|
||||
req := ghttp.RequestFromCtx(ctx)
|
||||
// 获取数据库中用户信息
|
||||
userService := UserService.NewUserService()
|
||||
userService.CheckLogin(req)
|
||||
return res, err
|
||||
}
|
||||
|
@ -57,3 +57,35 @@ func GetUser(user string) *do.UserDO {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// GetUserByToken
|
||||
//
|
||||
// 通过Token获取用户信息
|
||||
func GetUserByToken(token string) *do.UserDO {
|
||||
userDO := do.UserDO{}
|
||||
getTokenResult, err := g.Model("xf_token").Fields("user_id").Where("token = ?", token).One()
|
||||
if err == nil {
|
||||
result, err := g.Model("xf_user").Where("id = ?", getTokenResult["user_id"]).One()
|
||||
if err == nil {
|
||||
if result.IsEmpty() {
|
||||
g.Log().Cat("Database").Cat("User").Notice(context.Background(), "无法获取", token, "用户。原因:不存在此用户")
|
||||
return nil
|
||||
} else {
|
||||
err := result.Struct(&userDO)
|
||||
if err != nil {
|
||||
g.Log().Cat("Database").Cat("User").Error(context.Background(), err.Error())
|
||||
return nil
|
||||
} else {
|
||||
g.Log().Cat("Database").Cat("User").Notice(context.Background(), "Token", token, "获取用户", userDO.UserName, "成功")
|
||||
return &userDO
|
||||
}
|
||||
}
|
||||
} else {
|
||||
g.Log().Cat("Database").Cat("User").Error(context.Background(), err.Error())
|
||||
return nil
|
||||
}
|
||||
} else {
|
||||
g.Log().Cat("Database").Cat("User").Error(context.Background(), err.Error())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ func (_ *DefaultUserImpl) UserLogin(req *ghttp.Request, userVO *entity.UserLogin
|
||||
// 比对密码-=
|
||||
err := bcrypt.CompareHashAndPassword([]byte(getUserDO.Password), []byte(userVO.Password))
|
||||
if err == nil {
|
||||
// TokenServiceImpl 注册更新
|
||||
// Token 注册更新
|
||||
getTokenDO := tokenService().LoginToken(req, *getUserDO)
|
||||
if getTokenDO != nil {
|
||||
getUserDO.Password = ""
|
||||
@ -84,6 +84,17 @@ func (_ *DefaultUserImpl) UserLogin(req *ghttp.Request, userVO *entity.UserLogin
|
||||
}
|
||||
}
|
||||
|
||||
func (_ *DefaultUserImpl) CheckLogin(req *ghttp.Request) {
|
||||
|
||||
// CheckLogin
|
||||
//
|
||||
// 检查登录
|
||||
func (*DefaultUserImpl) CheckLogin(req *ghttp.Request) {
|
||||
// 获取 Token
|
||||
userDO := userDAO.GetUserByToken(req.Cookie.Get("token").String())
|
||||
if userDO != nil {
|
||||
userDO.Password = ""
|
||||
userDO.OldPassword = nil
|
||||
ResultUtil.Success(req, "用户已处于登陆状态", userDO)
|
||||
} else {
|
||||
ResultUtil.ErrorNoData(req, ErrorCode.UserNotExist)
|
||||
}
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ func Error(req *ghttp.Request, errorCode ErrorCode.ErrorCode, data interface{})
|
||||
//
|
||||
// 错误输出(不含 data)
|
||||
func ErrorNoData(req *ghttp.Request, errorCode ErrorCode.ErrorCode) {
|
||||
g.Log().Cat("Result").Debug(context.WithValue(context.Background(), req.RequestURI, req.RequestURI), req.RequestURI, "ErrorNoData[", errorCode.Code(), "]>", errorCode.Message())
|
||||
g.Log().Cat("Result").Debug(context.WithValue(context.Background(), req.RequestURI, req.RequestURI), req.RequestURI, "<ErrorNoData[", errorCode.Code(), "]>", errorCode.Message())
|
||||
req.Response.WriteJson(g.Map{
|
||||
"output": errorCode.Output(),
|
||||
"code": errorCode.Code(),
|
||||
@ -61,7 +61,7 @@ func ErrorNoData(req *ghttp.Request, errorCode ErrorCode.ErrorCode) {
|
||||
//
|
||||
// 默认错误输出(包含 data)
|
||||
func ErrorDefault(req *ghttp.Request, output string, code int, message string, data interface{}) {
|
||||
g.Log().Cat("Result").Debug(context.WithValue(context.Background(), req.RequestURI, req.RequestURI), req.RequestURI, "ErrorDefault[", code, "]>", message)
|
||||
g.Log().Cat("Result").Debug(context.WithValue(context.Background(), req.RequestURI, req.RequestURI), req.RequestURI, "<ErrorDefault[", code, "]>", message)
|
||||
req.Response.WriteJson(g.Map{
|
||||
"output": output,
|
||||
"code": code,
|
||||
|
Loading…
x
Reference in New Issue
Block a user