|
|
@@ -1,8 +1,8 @@
|
|
|
package service
|
|
|
|
|
|
import (
|
|
|
- "fmt"
|
|
|
- "github.com/mojocn/base64Captcha"
|
|
|
+ "math/rand"
|
|
|
+ "strconv"
|
|
|
"time"
|
|
|
"video_course/errors"
|
|
|
"video_course/global"
|
|
|
@@ -10,6 +10,10 @@ import (
|
|
|
"video_course/model"
|
|
|
h "video_course/repository/http"
|
|
|
rdb "video_course/repository/redis"
|
|
|
+ "video_course/utils"
|
|
|
+ "video_course/utils/short_msg"
|
|
|
+
|
|
|
+ "github.com/mojocn/base64Captcha"
|
|
|
)
|
|
|
|
|
|
var store = base64Captcha.DefaultMemStore
|
|
|
@@ -78,7 +82,7 @@ func (Auth) GenVerifyPic(config *base64Captcha.DriverString) (id string, pic str
|
|
|
}
|
|
|
|
|
|
// 手机号发送短信验证码
|
|
|
-func (a Auth) GenVFCode(codeType int, phone string, ip string, picCode string) (err error) {
|
|
|
+func (a Auth) GenVFCode(codeTypeInt int, phone string, ip string, picCode string) (err error) {
|
|
|
//图形验证码验证
|
|
|
//if !store.Verify(picId, picCode, true) {
|
|
|
// return errors.ErrPicVerifyCode
|
|
|
@@ -89,11 +93,16 @@ func (a Auth) GenVFCode(codeType int, phone string, ip string, picCode string) (
|
|
|
return errors.ErrUserNotExists
|
|
|
}
|
|
|
//生成短信验证码
|
|
|
- //rand.Seed(time.Now().Unix())
|
|
|
- //smsInt := rand.Int31n(10000)
|
|
|
- //smsCode := strconv.Itoa(smsInt)
|
|
|
- smsCode := "4321"
|
|
|
+ rand.Seed(time.Now().Unix())
|
|
|
+ //smsInt := rand.Intn(10000)
|
|
|
+ //smsCode := strconv.Itoa(smsInt)
|
|
|
+ smsCode := strconv.Itoa(utils.RandomInt(6))
|
|
|
|
|
|
+ codeType := model.VFCodeCodeTypeFromInt(codeTypeInt)
|
|
|
+ //// 手机号发送间隔
|
|
|
+ //const NameSendInterval = time.Second * 60
|
|
|
+ //ip 发送间隔
|
|
|
+ //const IpSendInterval = time.Second * 1
|
|
|
//存储短信验证码前判断redis中是否有该手机号对应验证码,有说明还没失效
|
|
|
redisdb := rdb.GetRedis()
|
|
|
tmpCode, _ := redisdb.Get(global.ProjectName + ":" + global.AppName + ":" + "smsCode:" + phone).Result()
|
|
|
@@ -101,36 +110,12 @@ func (a Auth) GenVFCode(codeType int, phone string, ip string, picCode string) (
|
|
|
err = errors.ErrSmsCodeRepeat
|
|
|
}
|
|
|
redisdb.Set(global.ProjectName+":"+global.AppName+":"+"smsCode:"+phone, []byte(smsCode), 3*time.Minute)
|
|
|
- //发送短信
|
|
|
- fmt.Println(smsCode)
|
|
|
|
|
|
- return
|
|
|
- //dao := a.getUserDao()
|
|
|
- //_ = dao.User{}.GetUserByPhone(name)
|
|
|
- //h.LoalloutServer{}.CheckPhone(phone)
|
|
|
- //codeType := model.VFCodeCodeTypeFromInt(codeTypeInt)
|
|
|
- //vfcodeDao := dao.VFCode{}
|
|
|
- //nameLastSend := vfcodeDao.NameLastSendTime(codeType, name)
|
|
|
- //ipLastSend := vfcodeDao.IpLastSendTime(ip)
|
|
|
- //
|
|
|
- //// 手机号发送间隔
|
|
|
- //const NameSendInterval = time.Second * 60
|
|
|
- //// ip 发送间隔
|
|
|
- //const IpSendInterval = time.Second * 1
|
|
|
- //
|
|
|
- //if time.Now().Sub(nameLastSend) < NameSendInterval {
|
|
|
- // panic(errors.ErrSendTooFast)
|
|
|
- //}
|
|
|
- //if time.Now().Sub(ipLastSend) < IpSendInterval {
|
|
|
- // panic(errors.ErrSendTooFast)
|
|
|
- //}
|
|
|
- //
|
|
|
- //code := strconv.Itoa(utils.RandomInt(6))
|
|
|
- //
|
|
|
- //smDAO := short_msg.NewShortMsg()
|
|
|
- //smDAO.SendVFCode(name, code, codeType)
|
|
|
- //
|
|
|
+ smDAO := short_msg.NewShortMsg()
|
|
|
+ smDAO.SendVFCode(phone, smsCode, codeType)
|
|
|
+
|
|
|
//vfcodeDao.Save(codeType, name, code, time.Now().Add(time.Minute*3), ip)
|
|
|
+ return
|
|
|
|
|
|
}
|
|
|
|