diff --git a/.gitignore b/.gitignore index 66fd13c..1aaf992 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,9 @@ *.dll *.so *.dylib - +.idea +ssh_manage_linux.zip +ssh_manage_windows.zip # Test binary, built with `go test -c` *.test diff --git a/common/jwt.go b/common/jwt.go index d9969cf..8235367 100644 --- a/common/jwt.go +++ b/common/jwt.go @@ -2,10 +2,17 @@ package common import ( "github.com/dgrijalva/jwt-go" + "ssh_manage/config" "time" ) -var jwt_ket = []byte("ss_jwt_token") +func init() { + if config.Config.Jwt.Key == "ss_jwt_token" { + panic("请先修改Jwt key!") + } +} + +var jwt_ket = []byte(config.Config.Jwt.Key) type Claims struct { Userid uint diff --git a/common/sftp_clients/sftp.go b/common/sftp_clients/sftp.go index 3c774b9..fd39d05 100644 --- a/common/sftp_clients/sftp.go +++ b/common/sftp_clients/sftp.go @@ -36,14 +36,14 @@ type MyClient struct { } type clients struct { - sync.RWMutex + *sync.RWMutex C map[string]*MyClient } var Client clients func init() { - Client = clients{C: make(map[string]*MyClient, 1000)} + Client = clients{new(sync.RWMutex),make(map[string]*MyClient)} } func (c *MyClient) ReceiveWsMsg(wsConn *websocket.Conn, exitCh chan bool) { diff --git a/config.toml b/config.toml index 8092af6..39a09bc 100644 --- a/config.toml +++ b/config.toml @@ -17,8 +17,11 @@ port = 6379 password = "" #没有则不填 poolsize = 10 #Redis连接池大小 -[Alisms] +[Alisms] #阿里云短信配置 accessid = "—" accesskey = "-" signname = "-" #短信签名 -template = "-" #模板代码 \ No newline at end of file +template = "-" #模板代码 + +[Jwt] +key = "ss_jwt_token" \ No newline at end of file diff --git a/config/config.go b/config/config.go index 2d469f9..86dca74 100644 --- a/config/config.go +++ b/config/config.go @@ -11,6 +11,11 @@ type config struct { Database *database Redis *redis Alisms *alisms + Jwt *jwtInfo +} + +type jwtInfo struct { + Key string } type alisms struct { diff --git a/controller/add.go b/controller/add.go index b40eea5..73219a3 100644 --- a/controller/add.go +++ b/controller/add.go @@ -11,16 +11,16 @@ import ( func Addser(c *gin.Context) { var resp Apiform.Resp - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) var info Apiform.Addser resp.Code = errcode.C_from_err resp.Msg = "数据错误" if c.ShouldBind(&info) == nil { - if(common.CheckIp(info.Ip)){ + if common.CheckIp(info.Ip) { db := database.Get() defer db.Close() result := db.DB.Create(&model.Server{Ip: info.Ip,Port: info.Port,Username: info.Username,Password: info.Password,Nickname: info.Nickname,BindUser: uid}) diff --git a/controller/info.go b/controller/info.go index d1464ea..47252bb 100644 --- a/controller/info.go +++ b/controller/info.go @@ -12,9 +12,9 @@ import ( func Info(c *gin.Context) { var resp Apiform.Resp - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) var limit Apiform.Slist @@ -45,9 +45,9 @@ func Info(c *gin.Context) { func UpdataNick(c *gin.Context) { var resp Apiform.Resp var edit Apiform.Edit - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) //nickname, name_exist := c.GetPostForm("nickname") @@ -79,9 +79,9 @@ func UpdataNick(c *gin.Context) { func Resetpass(c *gin.Context) { var resp Apiform.Resp var edit Apiform.EditPass - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) //nickname, name_exist := c.GetPostForm("nickname") @@ -113,9 +113,9 @@ func Resetpass(c *gin.Context) { func Del(c *gin.Context) { var resp Apiform.Resp var del Apiform.Edit - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) if c.ShouldBind(&del) == nil { @@ -143,9 +143,9 @@ func Del(c *gin.Context) { func GetTerm(c *gin.Context) { var resp Apiform.Resp var term Apiform.GetTerm - new_token := c.MustGet("token").(string) - if new_token != "" { //更新Token逻辑 - resp.Token = new_token + newToken := c.MustGet("token").(string) + if newToken != "" { //更新Token逻辑 + resp.Token = newToken } uid := c.MustGet("uid").(uint) resp.Code = errcode.C_from_err @@ -158,7 +158,7 @@ func GetTerm(c *gin.Context) { defer db.Close() result := db.DB.Model(&model.Server{}).First(&server) if result.RowsAffected == 1 && result.Error == nil { - db.DB.Model(&model.Server{}).Where(&server).Update(model.Server{BeforeTime: jtime.JsonTime{time.Now()}}) + db.DB.Model(&model.Server{}).Where(&server).Update(model.Server{BeforeTime: jtime.JsonTime{Time: time.Now()}}) sid, err := term.Decode(server) //log.Println(sid) if err == nil { diff --git a/controller/middleware/Auth.go b/controller/middleware/Auth.go index 43433bd..95791e4 100644 --- a/controller/middleware/Auth.go +++ b/controller/middleware/Auth.go @@ -14,18 +14,18 @@ import ( func Auth() gin.HandlerFunc { return func(c *gin.Context) { var resp Apiform.Resp - jwt_token := c.GetHeader("Authorization") + jwtToken := c.GetHeader("Authorization") //log.Println(jwt_token) //log.Println(strings.HasPrefix(jwt_token, "Bearer ")) - if jwt_token == "" || !strings.HasPrefix(jwt_token, "Bearer ") { + if jwtToken == "" || !strings.HasPrefix(jwtToken, "Bearer ") { resp.Code = errcode.S_auth_fmt_err resp.Msg = "Token不正确" c.JSON(200, resp) c.Abort() return } - jwt_token = jwt_token[7:] - claims, err := common.ParseToken(jwt_token) + jwtToken = jwtToken[7:] + claims, err := common.ParseToken(jwtToken) if err != nil { resp.Code = errcode.S_auth_err resp.Msg = "Token错误,请重新登录" @@ -41,12 +41,12 @@ func Auth() gin.HandlerFunc { c.Abort() return } - var userinfo model.User + var userInfo model.User db := database.Get() defer db.Close() - userinfo.ID = claims.Userid - db.DB.Where(userinfo).First(&userinfo) - if userinfo.Phone == 0 { + userInfo.ID = claims.Userid + db.DB.Where(userInfo).First(&userInfo) + if userInfo.Phone == 0 { resp.Code = errcode.S_auth_err resp.Msg = "用户不存在,请重新登录" c.JSON(200, resp) @@ -55,9 +55,9 @@ func Auth() gin.HandlerFunc { } c.Set("uid", claims.Userid) c.Set("token", "") - new_token, err := common.ReleaseToken(claims.Userid) + newToken, err := common.ReleaseToken(claims.Userid) if time.Now().Add(24*time.Hour).Unix() > claims.ExpiresAt { //如果过期时间小于一天,则更新客户端token - c.Set("token", new_token) + c.Set("token", newToken) } c.Next() } diff --git a/database/cache.go b/database/cache.go index 452443d..54a3133 100644 --- a/database/cache.go +++ b/database/cache.go @@ -7,13 +7,13 @@ import ( "time" ) -var redis_conf = config.Config.Redis +var redisConf = config.Config.Redis var Cache *redigo.Pool func init() { - var addr = fmt.Sprintf("%s:%d",redis_conf.Host,redis_conf.Port) - var password = redis_conf.Password + var addr = fmt.Sprintf("%s:%d", redisConf.Host, redisConf.Port) + var password = redisConf.Password Cache = poolInitRedis(addr, password) } @@ -21,7 +21,7 @@ func poolInitRedis(server string, password string) *redigo.Pool { return &redigo.Pool{ MaxIdle: 2, //空闲数 IdleTimeout: 240 * time.Second, - MaxActive: redis_conf.Poolsize, //最大数 + MaxActive: redisConf.Poolsize, //最大数 Dial: func() (redigo.Conn, error) { c, err := redigo.Dial("tcp", server) if err != nil { diff --git a/model/Model.go b/model/Model.go index 16d97bf..a11003d 100644 --- a/model/Model.go +++ b/model/Model.go @@ -9,4 +9,4 @@ type Model struct { CreatedAt jtime.JsonTime UpdatedAt jtime.JsonTime DeletedAt jtime.JsonTime `sql:"index"` -} +} \ No newline at end of file diff --git a/serve.go b/ssh_manage.go similarity index 100% rename from serve.go rename to ssh_manage.go diff --git a/static/js/main.js b/static/js/main.js index 62f16ef..ce5be8a 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -62,8 +62,8 @@ sendmsg_callback = function (result) { } -var countdowns = 120; -var button = $('#send'); +let countdowns = 120; +let button = $('#send'); countdown = function () { setTimeout(function () {