package auth import ( "fmt" "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys" sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils" "strings" ) type LightAuth struct { } func init() { lightAuth := &LightAuth{} RegisterAuth("qianqiusoft.com", lightAuth) } func (la *LightAuth) Init() { } func (la *LightAuth) Login(c *entitys.CtrlContext) { var logininfo sysmodel.LoginInfo c.Ctx.BindJSON(&logininfo) //fmt.Println(logininfo) var user sysmodel.SysUser ret, err := c.PlatformDbEngine.SQL(sysmodel.SqlUserLogin, logininfo.Account).Get(&user) if ret && err == nil && user.Status == 0 { //TODO check password md5Pwd := sysutils.HashPassword(logininfo.Password, "") //密码错误 if !strings.EqualFold(user.Password, md5Pwd) { c.Ctx.JSON(200, sysmodel.SysReturn{400, "password incorrect!", nil}) return } data, err := AddToGlobalTokenStore(c, &user) if err != nil { c.Ctx.JSON(200, sysmodel.SysReturn{400, err.Error(), nil}) return } TCPClient.SendToken(sysutils.GetGlobalTokenStore().Get(data.Token)) c.Ctx.JSON(200, sysmodel.SysReturn{200, "", data}) } else if user.Status == 1 { c.Ctx.JSON(200, sysmodel.SysReturn{400, "user disable!", nil}) } else { //fmt.Println(err.Error()) c.Ctx.JSON(200, sysmodel.SysReturn{400, "username or password incorrect!", nil}) } } func (la *LightAuth) Logout(c *entitys.CtrlContext) { token := c.Ctx.GetHeader("token") fmt.Println("delete token: ", token) sysutils.GetGlobalTokenStore().Remove(token) TCPClient.Send(CMD_REMOVE, []byte(token)) c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) }