|
|
|
@ -2,9 +2,11 @@ package usercenter
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"encoding/json"
|
|
|
|
|
|
|
|
"log"
|
|
|
|
"regexp"
|
|
|
|
"regexp"
|
|
|
|
"src/module/tencent"
|
|
|
|
"src/module/tencent"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/towgo/towgo/dao/basedboperat"
|
|
|
|
"github.com/towgo/towgo/towgo"
|
|
|
|
"github.com/towgo/towgo/towgo"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@ -15,7 +17,8 @@ func InitManageApi() {
|
|
|
|
|
|
|
|
|
|
|
|
//注册JSON-RPC服务处理器method路由
|
|
|
|
//注册JSON-RPC服务处理器method路由
|
|
|
|
//账户登录 F
|
|
|
|
//账户登录 F
|
|
|
|
towgo.SetFunc(_methodHead+"/user/login", userLogin)
|
|
|
|
|
|
|
|
|
|
|
|
towgo.SetFunc(_methodHead+"/user/loginOrRegByMobile", userLoginOrRegByMobile)
|
|
|
|
|
|
|
|
|
|
|
|
//获取自己的账户信息
|
|
|
|
//获取自己的账户信息
|
|
|
|
towgo.SetFunc(_methodHead+"/user/myinfo", userMyinfo)
|
|
|
|
towgo.SetFunc(_methodHead+"/user/myinfo", userMyinfo)
|
|
|
|
@ -27,7 +30,7 @@ func InitManageApi() {
|
|
|
|
towgo.SetFunc(_methodHead+"/user/regByMobile", userRegByMobile)
|
|
|
|
towgo.SetFunc(_methodHead+"/user/regByMobile", userRegByMobile)
|
|
|
|
|
|
|
|
|
|
|
|
//获取注册短信验证码
|
|
|
|
//获取注册短信验证码
|
|
|
|
towgo.SetFunc(_methodHead+"/user/getRegSMSVerificationCode", getRegSMSVerificationCode)
|
|
|
|
towgo.SetFunc(_methodHead+"/user/getLoginOrRegSMSVerificationCode", getLoginOrRegSMSVerificationCode)
|
|
|
|
|
|
|
|
|
|
|
|
//修改密码 F
|
|
|
|
//修改密码 F
|
|
|
|
towgo.SetFunc(_methodHead+"/user/changepassword", userChangepassword)
|
|
|
|
towgo.SetFunc(_methodHead+"/user/changepassword", userChangepassword)
|
|
|
|
@ -42,7 +45,7 @@ func isPhoneNumber(input string) bool {
|
|
|
|
return reg.MatchString(input)
|
|
|
|
return reg.MatchString(input)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func getRegSMSVerificationCode(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
func getLoginOrRegSMSVerificationCode(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
var params struct {
|
|
|
|
var params struct {
|
|
|
|
Mobile string `json:"mobile"`
|
|
|
|
Mobile string `json:"mobile"`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -53,7 +56,11 @@ func getRegSMSVerificationCode(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
code, err := StoreRegSMSVerificationCode(params.Mobile)
|
|
|
|
code, err := StoreLoginOrloginOrRegSMSVerificationCode(params.Mobile)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, err.Error())
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
err = tencent.SendSMSVerificationCode("2030693", "蕊鑫信息科技", params.Mobile, code)
|
|
|
|
err = tencent.SendSMSVerificationCode("2030693", "蕊鑫信息科技", params.Mobile, code)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
@ -85,7 +92,7 @@ func userRegByMobile(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if !RegSMSVerification(params.Mobile, params.VerificationCode) {
|
|
|
|
if !LoginOrRegSMSVerification(params.Mobile, params.VerificationCode) {
|
|
|
|
rpcConn.WriteError(500, "验证码错误")
|
|
|
|
rpcConn.WriteError(500, "验证码错误")
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -160,6 +167,69 @@ func userLogin(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 用户手机验证码登陆
|
|
|
|
|
|
|
|
func userLoginOrRegByMobile(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var params struct {
|
|
|
|
|
|
|
|
Mobile string `json:"mobile"`
|
|
|
|
|
|
|
|
VerificationCode string `json:"verification_code"`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rpcConn.ReadParams(¶ms)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if params.Mobile == "" {
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, "手机号码不能为空")
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if params.VerificationCode == "" {
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, "验证码不能为空")
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if !LoginOrRegSMSVerification(params.Mobile, params.VerificationCode) {
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, "验证码错误")
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//验证通过
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user := User{}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
basedboperat.Get(&user, nil, "username = ?", params.Mobile)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if user.ID > 0 {
|
|
|
|
|
|
|
|
loginErr := user.LoginNoAuth(params.Mobile)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if loginErr != nil { //模型层登陆成功
|
|
|
|
|
|
|
|
log.Print(loginErr.Error())
|
|
|
|
|
|
|
|
//dblog.Write("user:info", fmt.Sprintf("%s@%s 登录失败! 错误信息:%s", user.Username, rpcConn.GetRemoteAddr(), loginErr.Error()))
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, "用户名或密码错误")
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user.Password = ""
|
|
|
|
|
|
|
|
user.Salt = ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//dblog.Write("user:info", fmt.Sprintf("%s@%s 登录成功!", user.Username, rpcConn.GetRemoteAddr()))
|
|
|
|
|
|
|
|
rpcConn.WriteResult(user)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user.Username = params.Mobile
|
|
|
|
|
|
|
|
user.Password = randCharNumber(8)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Err := user.Reg(user.Username, user.Password)
|
|
|
|
|
|
|
|
if Err != nil {
|
|
|
|
|
|
|
|
rpcConn.WriteError(500, Err.Error())
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user.Password = ""
|
|
|
|
|
|
|
|
user.Salt = ""
|
|
|
|
|
|
|
|
rpcConn.WriteResult(user)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// token check
|
|
|
|
// token check
|
|
|
|
func userTokenCheck(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
func userTokenCheck(rpcConn towgo.JsonRpcConnection) {
|
|
|
|
result := map[string]interface{}{} //初始化结果参数
|
|
|
|
result := map[string]interface{}{} //初始化结果参数
|
|
|
|
|