mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-20 16:59:01 +08:00
demo modify
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
package register
|
||||
|
||||
import (
|
||||
api "Open_IM/pkg/base_info"
|
||||
"Open_IM/pkg/common/config"
|
||||
"Open_IM/pkg/common/constant"
|
||||
"Open_IM/pkg/common/db"
|
||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
||||
http2 "Open_IM/pkg/common/http"
|
||||
"Open_IM/pkg/common/log"
|
||||
"Open_IM/pkg/utils"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/garyburd/redigo/redis"
|
||||
"github.com/gin-gonic/gin"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -21,135 +21,60 @@ type ParamsSetPassword struct {
|
||||
PhoneNumber string `json:"phoneNumber"`
|
||||
Password string `json:"password"`
|
||||
VerificationCode string `json:"verificationCode"`
|
||||
}
|
||||
|
||||
type Data struct {
|
||||
ExpiredTime int64 `json:"expiredTime"`
|
||||
Token string `json:"token"`
|
||||
Uid string `json:"uid"`
|
||||
}
|
||||
|
||||
type IMRegisterResp struct {
|
||||
Data Data `json:"data"`
|
||||
ErrCode int32 `json:"errCode"`
|
||||
ErrMsg string `json:"errMsg"`
|
||||
Platform int32 `json:"platform" binding:"required,min=1,max=7"`
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
}
|
||||
|
||||
func SetPassword(c *gin.Context) {
|
||||
log.InfoByKv("setPassword api is statrting...", "")
|
||||
params := ParamsSetPassword{}
|
||||
if err := c.BindJSON(¶ms); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
var account string
|
||||
if params.Email != "" {
|
||||
account = params.Email
|
||||
} else {
|
||||
account = params.PhoneNumber
|
||||
}
|
||||
|
||||
log.InfoByKv("begin store redis", account)
|
||||
v, err := redis.String(db.DB.Exec("GET", account))
|
||||
|
||||
if params.VerificationCode == config.Config.Demo.SuperCode {
|
||||
goto openIMRegisterTab
|
||||
if params.VerificationCode != config.Config.Demo.SuperCode {
|
||||
v, err := redis.String(db.DB.Exec("GET", account))
|
||||
if err != nil || v != params.VerificationCode {
|
||||
log.InfoByKv("password Verification code error", account, params.VerificationCode)
|
||||
data := make(map[string]interface{})
|
||||
data["PhoneNumber"] = account
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println("Get Redis:", v, err)
|
||||
url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP)
|
||||
openIMRegisterReq := api.UserRegisterReq{}
|
||||
openIMRegisterReq.OperationID = params.OperationID
|
||||
openIMRegisterReq.Platform = params.Platform
|
||||
openIMRegisterReq.UserID = account
|
||||
openIMRegisterReq.Nickname = account
|
||||
openIMRegisterReq.Secret = config.Config.Secret
|
||||
openIMRegisterResp := api.UserRegisterResp{}
|
||||
bMsg, err := http2.Post(url, openIMRegisterReq, config.Config.MessageCallBack.CallBackTimeOut)
|
||||
if err != nil {
|
||||
log.ErrorByKv("password Verification code expired", account, "err", err.Error())
|
||||
data := make(map[string]interface{})
|
||||
data["phoneNumber"] = account
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification expired!", "data": data})
|
||||
log.NewError(params.OperationID, "request openIM register error", account, "err", err.Error())
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
if v != params.VerificationCode {
|
||||
log.InfoByKv("password Verification code error", account, params.VerificationCode)
|
||||
data := make(map[string]interface{})
|
||||
data["PhoneNumber"] = account
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code error!", "data": data})
|
||||
err = json.Unmarshal(bMsg, &openIMRegisterResp)
|
||||
if err != nil || openIMRegisterResp.ErrCode != 0 {
|
||||
log.NewError(params.OperationID, "request openIM register error", account, "err", "")
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": ""})
|
||||
return
|
||||
}
|
||||
|
||||
openIMRegisterTab:
|
||||
log.InfoByKv("openIM register begin", account)
|
||||
resp, err := OpenIMRegister(account)
|
||||
|
||||
log.InfoByKv("openIM register resp", account, resp, err)
|
||||
log.Info(params.OperationID, "begin store mysql", account, params.Password)
|
||||
err = im_mysql_model.SetPassword(account, params.Password)
|
||||
if err != nil {
|
||||
log.ErrorByKv("request openIM register error", account, "err", err.Error())
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": err.Error()})
|
||||
log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error())
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
response, err := ioutil.ReadAll(resp.Body)
|
||||
defer resp.Body.Close()
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.IoError, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
imrep := IMRegisterResp{}
|
||||
err = json.Unmarshal(response, &imrep)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
if imrep.ErrCode != 0 {
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": imrep.ErrMsg})
|
||||
return
|
||||
}
|
||||
|
||||
queryParams := im_mysql_model.SetPasswordParams{
|
||||
Account: account,
|
||||
Password: params.Password,
|
||||
}
|
||||
|
||||
log.InfoByKv("begin store mysql", account, params.Password)
|
||||
_, err = im_mysql_model.SetPassword(&queryParams)
|
||||
if err != nil {
|
||||
log.ErrorByKv("set phone number password error", account, "err", err.Error())
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.DatabaseError, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
log.InfoByKv("end setPassword", account)
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": imrep.Data})
|
||||
log.Info(params.OperationID, "end setPassword", account, params.Password)
|
||||
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMRegisterResp.UserToken})
|
||||
return
|
||||
}
|
||||
|
||||
func OpenIMRegister(account string) (*http.Response, error) {
|
||||
url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP)
|
||||
fmt.Println("1:", config.Config.Secret)
|
||||
|
||||
client := &http.Client{}
|
||||
|
||||
params := make(map[string]interface{})
|
||||
|
||||
params["secret"] = config.Config.Secret
|
||||
params["platform"] = 2
|
||||
params["uid"] = account
|
||||
params["name"] = account
|
||||
params["icon"] = ""
|
||||
params["gender"] = 0
|
||||
|
||||
params["mobile"] = ""
|
||||
|
||||
params["email"] = ""
|
||||
params["birth"] = ""
|
||||
params["ex"] = ""
|
||||
con, err := json.Marshal(params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
log.InfoByKv("openIM register params", account, params)
|
||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(con)))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
|
||||
return resp, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user