登陆状态检查
This commit is contained in:
parent
ab93bd397a
commit
77be5fce3a
@ -16,6 +16,7 @@ type IHelloV1 interface {
|
|||||||
type IAuthV1 interface {
|
type IAuthV1 interface {
|
||||||
AuthRegister(ctx context.Context, req *request.RegisterReq) (res *request.RegisterRes, err error)
|
AuthRegister(ctx context.Context, req *request.RegisterReq) (res *request.RegisterRes, err error)
|
||||||
AuthLogin(ctx context.Context, req *request.LoginReq) (res *request.LoginRes, 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 {
|
type ITokenV1 interface {
|
||||||
|
@ -10,6 +10,10 @@ type RegisterReq struct {
|
|||||||
type LoginReq struct {
|
type LoginReq struct {
|
||||||
g.Meta `path:"/login" tags:"登录" method:"get" summary:"登录账号"`
|
g.Meta `path:"/login" tags:"登录" method:"get" summary:"登录账号"`
|
||||||
}
|
}
|
||||||
|
type CheckReq struct {
|
||||||
|
g.Meta `path:"/check" tags:"检查登录" method:"get" summary:"检查登录"`
|
||||||
|
}
|
||||||
|
|
||||||
type RegisterRes struct{}
|
type RegisterRes struct{}
|
||||||
type LoginRes struct{}
|
type LoginRes struct{}
|
||||||
|
type CheckRes struct{}
|
||||||
|
@ -14,7 +14,7 @@ import (
|
|||||||
// AuthRegister
|
// 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{}
|
userRegister := entity.UserRegisterVO{}
|
||||||
req := ghttp.RequestFromCtx(ctx)
|
req := ghttp.RequestFromCtx(ctx)
|
||||||
// 获取 model 表单信息
|
// 获取 model 表单信息
|
||||||
@ -34,7 +34,7 @@ func (_ *ControllerV1) AuthRegister(ctx context.Context, _ *request.RegisterReq)
|
|||||||
return res, err
|
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{}
|
userLogin := entity.UserLoginVO{}
|
||||||
req := ghttp.RequestFromCtx(ctx)
|
req := ghttp.RequestFromCtx(ctx)
|
||||||
// 获取 model 表单信息
|
// 获取 model 表单信息
|
||||||
@ -53,3 +53,14 @@ func (_ *ControllerV1) AuthLogin(ctx context.Context, _ *request.LoginReq) (res
|
|||||||
}
|
}
|
||||||
return res, err
|
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
|
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))
|
err := bcrypt.CompareHashAndPassword([]byte(getUserDO.Password), []byte(userVO.Password))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// TokenServiceImpl 注册更新
|
// Token 注册更新
|
||||||
getTokenDO := tokenService().LoginToken(req, *getUserDO)
|
getTokenDO := tokenService().LoginToken(req, *getUserDO)
|
||||||
if getTokenDO != nil {
|
if getTokenDO != nil {
|
||||||
getUserDO.Password = ""
|
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)
|
// 错误输出(不含 data)
|
||||||
func ErrorNoData(req *ghttp.Request, errorCode ErrorCode.ErrorCode) {
|
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{
|
req.Response.WriteJson(g.Map{
|
||||||
"output": errorCode.Output(),
|
"output": errorCode.Output(),
|
||||||
"code": errorCode.Code(),
|
"code": errorCode.Code(),
|
||||||
@ -61,7 +61,7 @@ func ErrorNoData(req *ghttp.Request, errorCode ErrorCode.ErrorCode) {
|
|||||||
//
|
//
|
||||||
// 默认错误输出(包含 data)
|
// 默认错误输出(包含 data)
|
||||||
func ErrorDefault(req *ghttp.Request, output string, code int, message string, data interface{}) {
|
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{
|
req.Response.WriteJson(g.Map{
|
||||||
"output": output,
|
"output": output,
|
||||||
"code": code,
|
"code": code,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user