Example #1
0
        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);
        }
Example #2
0
        ///
        /// 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 }
            }));
        }
Example #3
0
        //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());
        }