通过验证码注册

This commit is contained in:
2023-08-23 19:49:29 +08:00
parent 5464da549a
commit 2568659a45
6 changed files with 106 additions and 106 deletions

View File

@@ -12,6 +12,7 @@ type User struct {
Gold int `json:"gold"`
Name string `json:"name"`
Email string `json:"email" gorm:"unique;not null"`
Mobile string `json:"mobile" gorm:"unique;not null"`
Password string `json:"-"`
Slat string `json:"-"`
Admin bool `json:"admin"`

48
models/code.go Normal file
View File

@@ -0,0 +1,48 @@
package models
import (
"fmt"
"main/configs"
"math/rand"
"time"
)
type Code struct {
Email string `json:"email"`
Mobile string `json:"mobile"`
Code string `json:"code"`
Expire time.Time `json:"expire"`
}
func init() {
configs.ORMDB().AutoMigrate(&Code{})
}
func CodeCreate(email, mobile string) string {
code := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))
configs.ORMDB().Create(&Code{
Email: email,
Mobile: mobile,
Code: code,
Expire: time.Now().Add(time.Minute * 5),
})
return code
}
func EmailCheck(email, code string) (err error) {
var data Code
configs.ORMDB().Where("email = ?", email).First(&data)
if data.Code == code && data.Expire.After(time.Now()) {
return nil
}
return fmt.Errorf("验证码错误")
}
func MobileCheck(mobile, code string) (err error) {
var data Code
configs.ORMDB().Where("mobile = ?", mobile).First(&data)
if data.Code == code && data.Expire.After(time.Now()) {
return nil
}
return fmt.Errorf("验证码错误")
}