light_auth.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package auth
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  5. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  6. sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  7. "strings"
  8. )
  9. type LightAuth struct {
  10. }
  11. func init() {
  12. lightAuth := &LightAuth{}
  13. RegisterAuth("qianqiusoft.com", lightAuth)
  14. }
  15. func (la *LightAuth) Init() {
  16. }
  17. func (la *LightAuth) Login(c *entitys.CtrlContext) {
  18. var logininfo sysmodel.LoginInfo
  19. c.Ctx.BindJSON(&logininfo)
  20. //fmt.Println(logininfo)
  21. var user sysmodel.SysUser
  22. ret, err := c.PlatformDbEngine.SQL(sysmodel.SqlUserLogin, logininfo.Account).Get(&user)
  23. if ret && err == nil {
  24. //TODO check password
  25. md5Pwd := sysutils.HashPassword(logininfo.Password, "")
  26. //密码错误
  27. if !strings.EqualFold(user.Password, md5Pwd) {
  28. c.Ctx.JSON(200, sysmodel.SysReturn{400, "password incorrect!", nil})
  29. return
  30. }
  31. data, err := AddToGlobalTokenStore(c, &user)
  32. if err != nil {
  33. c.Ctx.JSON(200, sysmodel.SysReturn{400, err.Error(), nil})
  34. return
  35. }
  36. TCPClient.SendToken(sysutils.GetGlobalTokenStore().Get(data.Token))
  37. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", data})
  38. } else {
  39. //fmt.Println(err.Error())
  40. c.Ctx.JSON(200, sysmodel.SysReturn{400, "username or password incorrect!", nil})
  41. }
  42. }
  43. func (la *LightAuth) Logout(c *entitys.CtrlContext) {
  44. token := c.Ctx.GetHeader("token")
  45. fmt.Println("delete token: ", token)
  46. sysutils.GetGlobalTokenStore().Remove(token)
  47. TCPClient.Send(CMD_REMOVE, []byte(token))
  48. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  49. }