private string getUserId(string address) { var findStr = new JObject { { "address", address } }.ToString(); var fieldStr = new JObject { { "userId", 1 } }.ToString(); var queryRes = mh.GetData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, findStr, fieldStr); if (queryRes.Count == 0) { return(""); } // var item = queryRes[0]; var updateJo = new JObject { { "nonceState", StateValidityOp.Not }, { "lastUpdateTime", TimeHelper.GetTimeStamp() } }; var userId = item["userId"].ToString(); if (userId == "") { userId = DaoInfoHelper.genUserId(address, address, address); updateJo.Add("userId", userId); } var updateStr = new JObject { { "$set", updateJo } }.ToString(); mh.UpdateData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, updateStr, findStr); return(userId); }
/// /// v3 /// public JArray getLoginNonce(string address) { address = address.ToLower(); if (address == "") { return(getErrorRes(DaoReturnCode.C_InvalidUserInfo)); } var nonceStr = ""; var now = TimeHelper.GetTimeStamp(); var findStr = new JObject { { "address", address } }.ToString(); var queryRes = mh.GetData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, findStr); if (queryRes.Count == 0) { nonceStr = DaoInfoHelper.genUserId(address, address, address); var newdata = new JObject { { "userId", "" }, { "username", "" }, { "address", address }, { "headIconUrl", "" }, { "nonceStr", nonceStr }, { "nonceState", StateValidityOp.Yes }, { "time", now }, { "lastUpdateTime", now }, }.ToString(); mh.PutData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, newdata); } else { var item = queryRes[0]; if (long.Parse(item["lastUpdateTime"].ToString()) + 30 /* 30s内同一地址不能重复申请*/ > now) { return(getErrorRes(DaoReturnCode.RepeatOperate)); } nonceStr = DaoInfoHelper.genUserId(address, address, address); var updateStr = new JObject { { "$set", new JObject { { "nonceStr", nonceStr }, { "nonceState", StateValidityOp.Yes }, { "lastUpdateTime", now }, } } }.ToString(); mh.UpdateData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, updateStr, findStr); } return(getRes(new JObject { { "nonceStr", nonceStr } })); }
//a. //b.send.register //c. public JArray register(string username, string email, string password) { var checkRes = checkUsername(username); if (!checkResCode(checkRes)) { return(checkRes); } checkRes = checkEmail(email); if (!checkResCode(checkRes)) { return(checkRes); } if (!checkPasswordLen(password)) { return(getErrorRes(DaoReturnCode.invalidPasswordLen)); } // var pswd = toPasswordHash(password); var time = TimeHelper.GetTimeStamp(); var userId = DaoInfoHelper.genUserId(username, email, pswd); var newdata = new JObject { { "userId", userId }, { "username", username }, { "password", pswd }, { "email", email }, { "emailVerifyCode", "" }, { "emailVerifyState", EmailState.sendBeforeState }, { "headIconUrl", "" }, { "brief", "" }, { "time", time }, { "lastUpdateTime", time }, { "ethAddress", "" }, { "neoAddress", "" }, }.ToString(); mh.PutData(dao_mongodbConnStr, dao_mongodbDatabase, userInfoCol, newdata); return(getRes()); }