From dccfd22619ba3785897172cd7267673a7292a240 Mon Sep 17 00:00:00 2001 From: wangshuai Date: Fri, 20 Nov 2020 08:36:57 +0800 Subject: [PATCH] 'commit' --- .../AccountController/DataerrorController.go | 1 + .../MyModel/Account/AccountDAO/AccountDAO.go | 25 +++++++ .../Account/AccountOpenAPI/AccountOpenAPI.go | 66 ++++++++++++++++--- .../Account/AccountService/AccountService.go | 6 ++ dsSupport/go.mod | 2 + dsSupport/go.sum | 2 + dsSupport/main.go | 1 + 7 files changed, 94 insertions(+), 9 deletions(-) diff --git a/dsSupport/MyModel/Account/AccountController/DataerrorController.go b/dsSupport/MyModel/Account/AccountController/DataerrorController.go index a4bf9c51..90f5b1b7 100644 --- a/dsSupport/MyModel/Account/AccountController/DataerrorController.go +++ b/dsSupport/MyModel/Account/AccountController/DataerrorController.go @@ -18,6 +18,7 @@ func Routers(r *gin.RouterGroup) { rr := r.Group("/account") rr.POST("/login", AccountOpenAPI.Login) + rr.POST("/login2", AccountOpenAPI.Login2) rr.POST("/isLogin", AccountOpenAPI.IsLogin) rr.POST("/logout", AccountOpenAPI.Logout) rr.POST("/currentUser", AccountOpenAPI.CurrentUser) diff --git a/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go b/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go index f7361b7f..5ef7f424 100644 --- a/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go +++ b/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go @@ -45,6 +45,31 @@ func Login(username string, password string) (bool, string) { return flag, msg } +func Login2(username string) (bool, string) { + var flag bool + var msg string + + if username != "" { + flag = false + msg = "账号不能为空" + } + + if len(ConfigUtil.AccountUsers) > 0 { + for _, v := range ConfigUtil.AccountUsers { + UserPwd := strings.Split(v, ":") + if UserPwd[0] == username { + flag = true + msg = "登陆成功" + } + } + } else { + flag = false + msg = "配置文件错误" + } + + return flag, msg +} + func CurrentUser(username string) (bool, string) { var flag bool var msg string diff --git a/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go b/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go index c7b33e58..216a15c5 100644 --- a/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go +++ b/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go @@ -40,7 +40,7 @@ type CurrentUserInfo struct { func init() { var err error - globalSessions, err = SessionUtil.NewSessionManager("memory", "goSessionid", 3600 * 8) + globalSessions, err = SessionUtil.NewSessionManager("memory", "goSessionid", 3600 * 24 * 365 * 10) if err != nil { fmt.Println(err) return @@ -73,12 +73,6 @@ func Login(c *gin.Context) { var r *http.Request = c.Request sess := globalSessions.SessionStart(w, r) - //val := sess.Get("username") - //if val != nil { - // fmt.Println(val) - //} else { - // - //} username := raw.Username password := raw.Password @@ -90,8 +84,8 @@ func Login(c *gin.Context) { s, _, accessToken := AccountService.CreateAccessToken("TEST_009", time.Now().Format("200601021504")) if s == true { - c.SetCookie("access_token", accessToken, 3600 * 8, "/", "", false, false) - c.SetCookie("access_time", time.Now().Format("200601021504"), 3600 * 8, "/", "", false, false) + c.SetCookie("access_token", accessToken, 3600 * 24 * 365 * 10, "/", "", false, false) + c.SetCookie("access_time", time.Now().Format("200601021504"), 3600 * 24 * 365 * 10, "/", "", false, false) } c.JSON(http.StatusOK, gin.H{ "status" : "ok", @@ -113,7 +107,61 @@ func Login(c *gin.Context) { return } +// 后台登陆 godoc +// @Summary 后台登陆 +// @Description json:"username" xorm:"not null comment('账号') VARCHAR(100)" example:"example" +// @Tags account +// @ID loginAccount +// @Accept json +// @Produce json +// @Param input body MySwagger.AccountSwag true "账号密码" +// @Success 200 {object} MySwagger.Result +// @Failure 400 {object} MySwagger.Result +// @Router /support/account/login2 [post] +func Login2(c *gin.Context) { + var raw MySwagger.AccountSwag + if err := c.ShouldBindJSON(&raw); err != nil { + c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false, Message: "接入系统数据JSON格式错误"}) + return + } + + var w http.ResponseWriter = c.Writer + var r *http.Request = c.Request + + sess := globalSessions.SessionStart(w, r) + + username := raw.Username + + success, _ := AccountService.Login2(username) + if success { + sess.Set("username", username) + fmt.Println("set session") + + s, _, accessToken := AccountService.CreateAccessToken("TEST_009", time.Now().Format("200601021504")) + if s == true { + c.SetCookie("access_token", accessToken, 3600 * 24 * 365 * 10, "/", "", false, false) + c.SetCookie("access_time", time.Now().Format("200601021504"), 3600 * 24 * 365 * 10, "/", "", false, false) + } + c.JSON(http.StatusOK, gin.H{ + "status" : "ok", + "type" : "account", + "currentAuthority" : username, + }) + + return + } else { + c.JSON(http.StatusOK, gin.H{ + "status" : "error", + "type" : "account", + "currentAuthority" : "guest", + }) + + return + } + + return +} // 当前登陆者信息 godoc // @Summary 当前登陆者信息 diff --git a/dsSupport/MyModel/Account/AccountService/AccountService.go b/dsSupport/MyModel/Account/AccountService/AccountService.go index 6f1fd4d5..bfe1dcbb 100644 --- a/dsSupport/MyModel/Account/AccountService/AccountService.go +++ b/dsSupport/MyModel/Account/AccountService/AccountService.go @@ -20,6 +20,12 @@ func Login(username string, password string) (bool, string) { return result, message } +func Login2(username string) (bool, string) { + result, message := AccountDAO.Login2(username) + + return result, message +} + func CurrentUser() (bool, string) { username := "admin" result, message := AccountDAO.CurrentUser(username) diff --git a/dsSupport/go.mod b/dsSupport/go.mod index 499c2e9e..b8933beb 100644 --- a/dsSupport/go.mod +++ b/dsSupport/go.mod @@ -9,6 +9,7 @@ require ( github.com/CloudyKit/jet v2.1.2+incompatible // indirect github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee // indirect github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4 // indirect + github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/bluesky335/IDCheck v0.0.0-20200319021444-08ee85bfcb7b github.com/bndr/gotabulate v1.1.2 // indirect github.com/fatih/structs v1.1.0 // indirect @@ -25,6 +26,7 @@ require ( github.com/rs/xid v1.2.1 github.com/satori/go.uuid v1.2.0 github.com/swaggo/gin-swagger v1.2.0 + github.com/swaggo/swag v1.5.1 github.com/syndtr/goleveldb v1.0.0 // indirect github.com/tealeg/xlsx v1.0.5 // indirect github.com/tidwall/gjson v1.6.1 diff --git a/dsSupport/go.sum b/dsSupport/go.sum index 465f75cc..76cf78a6 100644 --- a/dsSupport/go.sum +++ b/dsSupport/go.sum @@ -17,6 +17,8 @@ github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee h1:0RklYSvekYaIF github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee/go.mod h1:M9nmO4lBRWR/bBv7UCOmDJ1MB2DVoqz19B4JchDA+K0= github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4 h1:XBNSe5eibe5Fh131ah+xnO6s4A97U1T3tKZKLQQvqu0= github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4/go.mod h1:n7qJAqL9BKqGqiJyjPbWtxpdswTL5wX0IVP2Uw4vVhQ= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/aws/aws-sdk-go v1.34.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/bluesky335/IDCheck v0.0.0-20200319021444-08ee85bfcb7b h1:qJpZ1/QxjgYzxvCo2ylIBfgzm6X34pfquB6Qe9dr1+Y= github.com/bluesky335/IDCheck v0.0.0-20200319021444-08ee85bfcb7b/go.mod h1:PD4Jsv8cyK6DDv/UlGpnr4qmIq1+2ii5xSGgBfO1Sho= diff --git a/dsSupport/main.go b/dsSupport/main.go index 69f16f6a..ab313ea6 100644 --- a/dsSupport/main.go +++ b/dsSupport/main.go @@ -6,6 +6,7 @@ import ( "dsSupport/Utils/CommonUtil" "dsSupport/Utils/ConfigUtil" "dsSupport/Utils/FileUtil" + _ "dsSupport/docs" "fmt" "github.com/gin-gonic/gin" ginSwagger "github.com/swaggo/gin-swagger"