فهرست منبع

修改手机号码登录BUG

zhou.xiaoning 2 سال پیش
والد
کامیت
b6930cd5a2
2فایلهای تغییر یافته به همراه35 افزوده شده و 5 حذف شده
  1. 15 0
      model/account/account.go
  2. 20 5
      service/account/login.go

+ 15 - 0
model/account/account.go

@@ -123,3 +123,18 @@ type Logintaaccount struct {
 func (r *Logintaaccount) TableName() string {
 	return "LOGINTAACCOUNT"
 }
+
+// Userauthinfo 用户三方登录信息表
+type Userauthinfo struct {
+	AUTHID   string `json:"authid" xorm:"AUTHID"`     // 三方认证IID - 手机号时存储加密串
+	AUTHTYPE int32  `json:"authtype" xorm:"AUTHTYPE"` // 三方认证类型 - 1:微信 2:支付宝 3:手机号 4:管理员账号
+	LOGINID  int64  `json:"loginid" xorm:"LOGINID"`   // 登陆账号
+	USERID   int64  `json:"userid" xorm:"USERID"`     // 用户ID
+	AUTHNAME string `json:"authname" xorm:"AUTHNAME"` // 三方认证I昵称
+	ISVALID  int32  `json:"isvalid" xorm:"ISVALID"`   // 是否有效 - 0:无效 1:有效
+}
+
+// TableName is USERAUTHINFO
+func (r *Userauthinfo) TableName() string {
+	return "USERAUTHINFO"
+}

+ 20 - 5
service/account/login.go

@@ -89,15 +89,30 @@ func getLoginAccount(userName string, password string) (loginaccount *accountMod
 	// 通过手机号码查询,需要AES加密
 	key, _ := hex.DecodeString(utils.AESSecretKey)
 	if mobileEncrypted, _ := utils.AESEncrypt([]byte(userName), key); mobileEncrypted != nil {
-		loginaccount = &accountModel.Loginaccount{
-			MOBILE: string(mobileEncrypted),
+		// 从三方表获取LoginID
+		userauthinfo := &accountModel.Userauthinfo{
+			AUTHID:   string(mobileEncrypted),
+			AUTHTYPE: 3,
 		}
-		if has, _ := global.M2A_DB.Get(loginaccount); has {
-			// 构建数据库存储的密码
-			if loginaccount.PASSWORD == utils.EncoderSha256(fmt.Sprintf("%d%s", loginaccount.LOGINID, pwd)) {
+		if has, _ := global.M2A_DB.Get(&userauthinfo); has {
+			loginaccount = &accountModel.Loginaccount{
+				LOGINID:  userauthinfo.LOGINID,
+				PASSWORD: utils.EncoderSha256(fmt.Sprintf("%s%s", userName, pwd)), // 构建数据库存储的密码
+			}
+			if has, _ := global.M2A_DB.Get(loginaccount); has {
 				return
 			}
 		}
+
+		// loginaccount = &accountModel.Loginaccount{
+		// 	MOBILE: string(mobileEncrypted),
+		// }
+		// if has, _ := global.M2A_DB.Get(loginaccount); has {
+		// 	// 构建数据库存储的密码
+		// 	if loginaccount.PASSWORD == utils.EncoderSha256(fmt.Sprintf("%d%s", loginaccount.LOGINID, pwd)) {
+		// 		return
+		// 	}
+		// }
 	}
 
 	err = errors.New("错误的用户名或密码")