auth.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package service
  2. import (
  3. //"fmt"
  4. //"server/dao/gorm"
  5. //"server/dao/short_msg"
  6. //"server/dao/wx"
  7. //"server/errors"
  8. //"server/function"
  9. //"server/model"
  10. //"server/utils"
  11. //"strconv"
  12. //"time"
  13. "github.com/mojocn/base64Captcha"
  14. )
  15. var store = base64Captcha.DefaultMemStore
  16. type Auth struct {
  17. base
  18. }
  19. //
  20. //func (a Auth) SignOut(session *model.Session) (logInfo string) {
  21. // user := a.getUser(session)
  22. // function.Session{}.Delete(session)
  23. // logInfo = fmt.Sprintf("用户[%s]退出", user.GetShowName())
  24. // return
  25. //}
  26. //func (a Auth) SignIn(
  27. // verifyName string,
  28. // password string,
  29. // channel model.LoginChannel,
  30. // picId string,
  31. // picCode string,
  32. // ip string) (sess *model.Session, logInfo string) {
  33. // var user *model.User
  34. //
  35. // defer func() {
  36. // if p := recover(); p == nil {
  37. // logInfo = fmt.Sprintf("用户[%s]在%s登录成功", user.GetShowName(), channel)
  38. // } else {
  39. // panic(p)
  40. // }
  41. // }()
  42. //
  43. // if !store.Verify(picId, picCode, true) {
  44. // panic(errors.ErrPicVerifyCode)
  45. // }
  46. //
  47. // dao := gorm.UserDAO{}
  48. // shopDao := gorm.ShopDAO{}
  49. // user = dao.GetUserByVerifyName(verifyName)
  50. // user.CheckStatus()
  51. // shop, _ := shopDao.ShopDetailOne(user.ShopId)
  52. // shop.CheckShopStatus()
  53. //
  54. // if !dao.PasswordCorrect(user.Id, password) {
  55. // panic(errors.ErrPassword)
  56. // }
  57. // sess = function.Auth{}.LoginUser(user, channel, "", ip)
  58. //
  59. // return
  60. //}
  61. func (Auth) GenVerifyPic(config *base64Captcha.DriverString) (id string, pic string) {
  62. var (
  63. err error
  64. )
  65. driver := config.ConvertFonts()
  66. c := base64Captcha.NewCaptcha(driver, store)
  67. id, pic, err = c.Generate()
  68. if err != nil {
  69. panic(err)
  70. }
  71. return id, pic
  72. }
  73. // 手机号发送短信验证码
  74. func (a Auth) GenVFCode(codeTypeInt int, name string, ip string,
  75. picId string,
  76. picCode string) {
  77. //if !store.Verify(picId, picCode, true) {
  78. // panic(errors.ErrPicVerifyCode)
  79. //}
  80. //_ = dao.User{}.GetUserByPhone(name)
  81. //codeType := model.VFCodeCodeTypeFromInt(codeTypeInt)
  82. //vfcodeDao := dao.VFCode{}
  83. //nameLastSend := vfcodeDao.NameLastSendTime(codeType, name)
  84. //ipLastSend := vfcodeDao.IpLastSendTime(ip)
  85. //
  86. //// 手机号发送间隔
  87. //const NameSendInterval = time.Second * 60
  88. //// ip 发送间隔
  89. //const IpSendInterval = time.Second * 1
  90. //
  91. //if time.Now().Sub(nameLastSend) < NameSendInterval {
  92. // panic(errors.ErrSendTooFast)
  93. //}
  94. //if time.Now().Sub(ipLastSend) < IpSendInterval {
  95. // panic(errors.ErrSendTooFast)
  96. //}
  97. //
  98. //code := strconv.Itoa(utils.RandomInt(6))
  99. //
  100. //smDAO := short_msg.NewShortMsg()
  101. //smDAO.SendVFCode(name, code, codeType)
  102. //
  103. //vfcodeDao.Save(codeType, name, code, time.Now().Add(time.Minute*3), ip)
  104. }
  105. //func (a Auth) PhoneSignIn(phone string, code string, channel model.LoginChannel, ip string) (
  106. // sess *model.Session, logInfo string) {
  107. //
  108. // gorm.VFCodeDAO{}.CheckVFCode(model.VFCodeCodeTypeLogin, phone, code)
  109. //
  110. // user := gorm.UserDAO{}.GetUserByPhone(phone)
  111. // user.CheckStatus()
  112. //
  113. // sess = function.Auth{}.WxLoginUser(user, channel, "", ip, phone, user.Phone)
  114. // logInfo = fmt.Sprintf("用户[%s]通过手机验证码登录", user.Name)
  115. // return
  116. //}
  117. //func (a Auth) PassEdit(sess *model.Session, oldpass string, newpass string) (
  118. // logInfo string, err error) {
  119. // user := a.getUser(sess)
  120. // userDAO := gorm.UserDAO{}
  121. // if !userDAO.PasswordCorrect(user.Id, oldpass) {
  122. // err = errors.ErrNamePwdIncorrect
  123. // return
  124. // }
  125. // err = userDAO.ShopManagerPassEdit(user, newpass)
  126. // if err != nil {
  127. // return
  128. // }
  129. // logInfo = fmt.Sprintf("用户[%s]修改密码", user.Name)
  130. // return
  131. //}
  132. //
  133. //func (a Auth) CheckPhone(phone string) (
  134. // md5 string) {
  135. //
  136. // user := gorm.UserDAO{}.CheckPhone(phone)
  137. // user.CheckStatus()
  138. //
  139. // md5 = user.UserMd5
  140. // return
  141. //}