modify login

This commit is contained in:
luming 2021-10-18 20:59:21 +08:00
parent 4eb071c302
commit fb5aed6211
5 changed files with 29 additions and 19 deletions

View File

@ -1,11 +1,11 @@
package common
import (
"fmt"
"github.com/garyburd/redigo/redis"
"log"
"regexp"
"ssh_manage/database"
"ssh_manage/model"
"strconv"
"strings"
)
@ -16,16 +16,28 @@ type verifyImpl interface {
func Verify(v verifyImpl) (is_verify bool) {
phone, code := v.Verify()
cache := database.Cache.Get()
db := database.Get()
defer db.Close()
defer cache.Close()
s_code, err := redis.String(cache.Do("GET", phone))
var user model.User
phoneNumber, err := strconv.Atoi(phone)
db.DB.Where(model.User{Phone: phoneNumber}).Find(&user)
//s_code, err := redis.String(cache.Do("GET", phone))
if err != nil {
log.Println("Verify Err:", err.Error())
return
}
if code != s_code {
log.Println(fmt.Sprintf("手机号:%s -- 验证码:%s 校验失败", phone, code))
if code == user.Password {
return true
} else if user.Password == "" {
return true
} else {
return
}
//if code != s_code {
// log.Println(fmt.Sprintf("手机号:%s -- 验证码:%s 校验失败", phone, code))
// return true
//}
return true
}

View File

@ -4,17 +4,17 @@ model = "release" #debug release test
port = "0.0.0.0:8082" #服务要运行的端口
[Database]
host = "127.0.0.1"
port = 3306
username = "root" #数据库账号
password = "root" #数据库密码
host = "cdb-0qcrt7qc.cd.tencentcdb.com"
port = 10109
username = "ssh" #数据库账号
password = "ssh@root" #数据库密码
dbname = "ssh" #数据库名
poolsize = 10 #Mysql连接池大小
[Redis]
host = "127.0.0.1"
host = "db.timemail.email"
port = 6379
password = "" #没有则不填
password = "timemail.email" #没有则不填
poolsize = 10 #Redis连接池大小
[Alisms] #阿里云短信配置
@ -24,4 +24,4 @@ signname = "-" #短信签名
template = "-" #模板代码
[Jwt]
key = "ss_jwt_token"
key = "rainerosion"

View File

@ -16,14 +16,14 @@ func Login(c *gin.Context) {
//c.JSON(200, gin.H{"token": token})
var resp Apiform.Resp
resp.Code = errcode.C_from_err
resp.Msg = "手机号和验证码不能为空!"
resp.Msg = "手机号和码不能为空!"
var user Apiform.Login
if c.ShouldBind(&user) == nil {
if common.Verify(&user) {
var userinfo model.User
db := database.Get()
defer db.Close()
db.DB.Where(model.User{Phone: user.Phone}).FirstOrCreate(&userinfo)
db.DB.Where(model.User{Phone: user.Phone,Password: user.Code}).FirstOrCreate(&userinfo)
newToken, err := common.ReleaseToken(userinfo.ID)
if err == nil && userinfo.ID > 0 {
resp.Code = errcode.C_nil_err
@ -36,7 +36,7 @@ func Login(c *gin.Context) {
}
} else {
resp.Code = errcode.S_Verify_err
resp.Msg = "验证码校验失败"
resp.Msg = "密码错误"
}
}
//log.Printf(c.ClientIP())

View File

@ -4,5 +4,6 @@ type User struct {
Model
Phone int `gorm:"not null;unique;type:bigint"`
Email *string `gorm:"unique"`
Password string
Servers []Server `gorm:"ForeignKey:BindUser"`
}

View File

@ -20,10 +20,7 @@
<div class="mx-auto max-w-xs">
<input id="phone" class="w-full px-8 py-4 rounded-lg font-medium bg-gray-100 border border-gray-200 placeholder-gray-500 text-sm focus:outline-none focus:border-gray-400 focus:bg-white" type="number" placeholder="手机号" />
<div>
<input id="code" style="width: 11.7rem;margin-right: 1.3rem" class="w-7/12 px-8 py-4 rounded-lg font-medium bg-gray-100 border border-gray-200 placeholder-gray-500 text-sm focus:outline-none focus:border-gray-400 focus:bg-white mt-5" type="number" placeholder="验证码" />
<button onclick="send()" id="send" style="width: 6.2rem;" class="mt-5 tracking-wide font-semibold bg-gray-700 text-gray-100 w-4/12 py-4 rounded-lg hover:bg-gray-500 ease-in-out items-center justify-center focus:shadow-outline focus:outline-none">发送</button>
</div>
<input id="code" class="w-full px-8 py-4 rounded-lg font-medium bg-gray-100 border border-gray-200 placeholder-gray-500 text-sm focus:outline-none focus:border-gray-400 focus:bg-white" type="password" placeholder="密码" />
<button onclick="login()" class="mt-5 tracking-wide font-semibold bg-indigo-500 text-gray-100 w-full py-4 rounded-lg hover:bg-indigo-700 ease-in-out flex items-center justify-center focus:shadow-outline focus:outline-none">
<span class="ml-3">登 录</span>
</button>