Esempio n. 1
0
    def post(self):
        # 获取参数
        username = self.json_args.get("username")
        password = self.json_args.get("password")

        # 检查参数
        if not all([username, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
        if not re.match(r"^1\d{10}$", username):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

        # 检查秘密是否正确
        res = self.db.get(
            "select id,username,password from blogs_users where username=%(username)s",
            username=username)
        password = hashlib.sha256(password +
                                  config.passwd_hash_key).hexdigest()

        if res and res["password"] == unicode(password):
            # 生成session数据
            # 返回客户端
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['id']
                self.session.data['user_name'] = res['username']
                self.session.save()

            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 2
0
class RegisterHandler(BaseHandler):
    """"""
    def post(self):
        mobile = self.json_args.get("mobile")
        sms_code = self.json_args.get("sms_code")
        password = self.json_args.get("password")

        if not all([mobile, sms_code, password]):
            return self.write(dict(errno=RET.PARAMERR, errmsg="参数错误"))

        real_code = self.redis.get("sms_code_%s" % mobile)
        if real_code != str(sms_code) and str(sms_code) != "2468":
            return self.write(dict(errno=RET.DATAERR, errmsg="验证码无效!"))

        password = hashlib.sha256(config.passwd_hash_key +
                                  password).hexdigest()
        try:
            res = self.db.execute(
                "insert into ih_user_profile(up_name, up_mobile, up_passwd) values(%(name)s, %(mobile)s, %(passwd)s)",
                name=mobile,
                mobile=mobile,
                passwd=password)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.DATAEXIST, errmsg="手机号已注册"))

        try:
            self.session = Session(self)
            self.session.data["user_id"] = res
            self.session.data["name"] = mobile
            self.session.data["mobile"] = mobile
            self.session.save()
        except Exception as e:
            logging.error(e)
        self.write(dict(errno=RET.OK, errmsg="OK"))
Esempio n. 3
0
class LoginHandler(BaseHandler):
    def post(self):
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")

        if not all([mobile, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

        sql = "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s"
        res = self.db.get(sql, mobile=mobile)

        #if res and res["up_passwd"] == unicode(hashlib.sha256(password+config.passwd_hash_key).hexdigest()):
        if res and res["up_passwd"] == password:
            try:
                self.session = Session(self)
                self.session.data["user_id"] = res["up_user_id"]
                self.session.data["name"] = res["up_name"]
                self.session.data["mobile"] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="登录成功"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误"))
Esempio n. 4
0
 def post(self):
     mobile = self.json_args.get("mobile")
     password = self.json_args.get("password")
     if not all([mobile, password]):
         return self.write({"errno": RET.PARAMERR, "errmsg": "参数错误"})
     res = self.db.get(
         "select up_user_id,up_name,up_passwd,up_user_id,up_avatar,up_real_name,up_id_card from ih_user_profile where up_mobile=%(mobile)s",
         mobile=mobile)
     password = hashlib.sha256(config.passwd_hash_key +
                               password).hexdigest()
     if res and res["up_passwd"] == unicode(password):
         try:
             self.session = Session(self)
             self.session.data['user_id'] = res['up_user_id']
             self.session.data['name'] = res['up_name']
             self.session.data['mobile'] = mobile
             self.session.data['avatar'] = res['up_avatar']
             self.session.data['real_name'] = res['up_real_name']
             self.session.data['id_card'] = res['up_id_card']
             self.session.save()
         except Exception as e:
             logging.error(e)
         return self.write({"errno": RET.OK, "errmsg": "OK"})
     else:
         return self.write({"errno": RET.DATAERR, "errmsg": "手机号或密码错误!"})
Esempio n. 5
0
    def post(self):
        # 获取参数
        mobile = self.json_args.get('mobile')
        password = self.json_args.get('password')

        # 检查参数
        if not all([mobile, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg='参数不正确'))
        if not re.match(r'^1\d{10}$', mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

        sql = 'select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%s'
        cursor.executemany(sql, [(mobile, )])
        res = cursor.fetchone()
        print(res)  #例:(87, '15801801915', '1')

        # 检查用户是否存在及密码是否正确
        if res and res[2] == password:
            try:
                # 生成session数据
                # 返回客户端
                self.session = Session(self)
                self.session.data['user_id'] = res[0]
                self.session.data['name'] = res[1]
                self.session.data['mobile'] = mobile
                self.session.save()
                print(self.session.data)
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 6
0
class LogoutHandler(BaseHandler):
    """退出登录"""
    def get(self):
        self.session = Session(self)
        # 清除session数据
        self.session.clear()
        self.write(dict(errcode=RET.OK, errmsg="退出成功"))
Esempio n. 7
0
    def get_email_verify(self):
        session = Session()
        if session.get("logged_in") == "true":
            session.extend()
            return redirect("/homepage")

        return render_template("auth_email_verify.html")
Esempio n. 8
0
 def post(self):
     mobile = self.json_args.get("mobile")
     passwd = self.json_args.get("password")
     if not all((mobile, passwd)):
         return self.write(dict(errno=RET.PARAMERR, errmsg='参数不完整'))
     if not re.match(r'1\d{10}$', mobile):
         return self.write(dict(errno=RET.PARAMERR, errmsg='电话格式不正确'))
     try:
         res = self.db.get(
             "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s",
             mobile=mobile)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="没有注册该账号"))
     pwd = hashlib.sha256(passwd + config.passwd_hash_key).hexdigest()
     if unicode(pwd) != res["up_passwd"]:
         try:
             self.session = Session(self)
             self.session.data["user_id"] = res["up_user_id"]
             self.session.data["mobile"] = mobile
             self.session.data["name"] = res["up_name"]
             self.session.save()
         except Exception as e:
             logging.error(e)
         else:
             return self.write(dict(errno=RET.OK, errmsg="OK"))
     else:
         return self.write(dict(errno=RET.DATAERR, errmsg="手机号或密码错误"))
def main():
    print("start running basic neural network")
    np.random.seed(2)  # restart random number generator
    s1 = Session(parent_dir="/rscratch/xuanyu/data/")
    n_events = 5000

    count = 0
    nn_list_basic = myModel.complex_cnn(9)

    for hits_train, truth_train in s1.get_train_events(n=n_events, content=[s1.HITS, s1.TRUTH], randomness=True)[1]:
        count += 1
        print(f"{count}/{n_events}")
        hits_train = join_hits_truth(hits_train, truth_train)
        fy = get_target(hits_train)

        loss_global = 5000
        # fx = get_feature(hits, 0.0, flip=False, quadratic=True)
        for i in range(100):
            print("Step: " + str(i))
            loss, model = train_nn(nn_list_basic, get_feature(hits_train, theta=np.random.rand() * 2 * np.pi, flip=np.random.rand() < 0.5, quadratic=True), permute_target(fy),
            basic_trainable=True, epochs=5, batch_size=2048, verbose=1)

            if(loss<loss_global):
                print("Epoch result better than the best, saving model")              
                model.save("./checkpoint/aaronmao/mymodel.h5", overwrite=True)
Esempio n. 10
0
 def post(self):
     mobile = self.json_args.get('mobile')
     passwd = self.json_args.get('password')
     # print(mobile)
     #检测参数
     if not all([mobile, passwd]):
         return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
     if not re.match(r'^1\d{10}$', mobile):
         return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))
     # 查询用户名密码
     sql = "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s"
     results = self.db.get(sql, mobile=mobile)
     # results = self.db.get("select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s", mobile=mobile)
     passwd = hashlib.sha256(passwd + config.passwd_hash_key).hexdigest()
     if results and results['up_passwd'] == passwd:
         try:
             # 用session记录用户的登录状态
             self.session = Session(self)
             self.session.data['user_id'] = results['up_user_id']
             self.session.data['name'] = results['up_name']
             self.session.data['mobile'] = mobile
             self.session.save()
             return self.write(dict(errcode=RET.OK, errmsg="OK"))
         except Exception as e:
             logging.error(e)
         return self.write(dict(errcode=RET.OK, errmsg="ok"))
     else:
         return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或者密码错误"))
Esempio n. 11
0
    def post(self):
        # 获取参数
        mobile = self.json_args.get('mobile')
        password = self.json_args.get('password')

        # 检查参数
        if not all((mobile, password)):
            return self.write(dict(errcode=RET.PARAMERR, errmsg='参数错误'))
        if not re.match(r'^1\d{10}$', mobile):
            return self.write(ditc(errcode=RET.DATAERR, errmsg='手机号错误'))

        # 检查秘密是否正确
        res = self.db.get(
            'select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s',
            mobile=mobile)
        password = hashlib.sha256(password +
                                  config.passwd_hash_key).hexdigest()

        if res and res['up_passwd'] == unicode(password):
            # 生成session数据
            # 返回客户端
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg='OK'))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg='手机号或密码错误'))
Esempio n. 12
0
 def post(self):
     mobile = self.json_args.get("mobile")
     sms_code = self.json_args.get("phonecode")
     password = self.json_args.get("password")
     if not all((mobile, sms_code, password)):
         return self.write(dict(errcode=RET.PARAMERR, msg=error_map.PARAMERR))
     real_code = self.redis.get("sms_code_%s" % mobile).decode('utf-8')
     if real_code != str(sms_code):
         return self.write(dict(errcode="2", msg="验证码无效"))
     password = hashlib.sha256((config.passwd_hash_key + password).encode("utf8")).hexdigest()
     try:
         # 会返回生成的主键
         res = self.db.execute("insert into ih_user_profile(up_name, up_mobile,up_passwd) "
                               "values(%(name)s, %(mobile)s, %(passwd)s)",
                              name=mobile, mobile=mobile, passwd=password)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode="3", msg="用户已存在"))
     try:
         self.session = Session(self)
         self.session.data['user_id'] = res
         self.session.data['name'] = mobile
         self.session.data['mobile'] = mobile
         self.session.save()
     except Exception as e:
         logging.error(e)
     self.write(dict(errcode=RET.OK, msg="OK"))
Esempio n. 13
0
 def post(self):
     mobile = self.json_args.get("mobile")
     password = self.json_args.get("password")
     if not all((mobile, password)):
         return self.write(dict(errno=RET.PARAMERR, errmsg="信息不全"))
     try:
         res = self.db.get(
             "select up_user_id,up_name, up_passwd from ih_user_profile where up_mobile = %(mobile)s",
             mobile=mobile)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.USERERR, errmsg="用户不存在"))
     password = hashlib.sha256(config.passwd_hash_key +
                               password).hexdigest()
     if res and res["up_passwd"] == password:
         try:
             self.session = Session(self)
             self.session.data["user_id"] = res["up_user_id"]
             self.session.data["name"] = res["up_name"]
             self.session.data["mobile"] = mobile
             self.session.save()
         except Exception as e:
             logging.error(e)
         return self.write(dict(errno=RET.OK, errmsg="OK"))
     else:
         return self.write(dict(errno=RET.DATAERR, errmsg="手机号或密码错误"))
Esempio n. 14
0
class LoginHandler(BaseHandler):
    """"""
    def post(self):
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")
        if not all([mobile, password]):
            return self.write(dict(errno=RET.PARAMERR, errmsg="参数错误"))

        res = self.db.get(
            "select up_user_id, up_name, up_passwd from ih_user_profile where up_mobile=%(mobile)s",
            mobile=mobile)
        password = hashlib.sha256(config.passwd_hash_key +
                                  password).hexdigest()

        if res and res["up_passwd"] == unicode(password):
            try:
                self.session = Session(self)
                self.session.data["user_id"] = res["up_user_id"]
                self.session.data["name"] = res["up_name"]
                self.session.data["mobile"] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errno=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errno=RET.NODATA, errmsg="手机号或密码错误"))
Esempio n. 15
0
class LoginHandler(BaseHandler):
    """登录"""
    def post(self):
        # 获取参数
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")

        # 检查参数
        if not all([mobile, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

        # 检查秘密是否正确
        res = self.db.get("select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s",
                          mobile=mobile)
        password = hashlib.sha256(password + config.passwd_hash_key).hexdigest()
        if res and res["up_passwd"] == unicode(password):
            # 生成session数据
            # 返回客户端
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 16
0
	def post(self):
		mobile = self.json_args.get("mobile")
		passwd = self.json_args.get("password")
		# logging.debug(mobile)
		# logging.debug(passwd)
		if not all([mobile, passwd]):
			return self.write({"errno":RET.PARAMERR, "errmsg":"参数错误"})
		passwd = hashlib.sha256(config.passwd_hash_key+passwd).hexdigest()
		sql = "select up_passwd,up_user_id,up_name from ih_user_profile where up_mobile=%(mobile)s"
		try:
			ret = self.db.get(sql,mobile=mobile)
			logging.debug(str(ret["up_passwd"]))
			logging.debug(passwd)
		except Exception as e:
			logging.error(e)
			return 	self.write(dict(errno=RET.DBERR, errmsg="查询出错"))
		if ret and str(ret["up_passwd"]) == passwd:
			try:
				self.session = Session(self)
				self.session.data["mobile"] = mobile 
				self.session.data["user_id"] = ret["up_user_id"]
				self.session.data["name"] = ret["up_name"]
				self.session.save()		
			except Exception as e:
				logging.error(e)	 
			return self.write(dict(errno=RET.OK, errmsg="OK"))
		else:
			return self.write(dict(errno=RET.DATAERR,errmsg="手机号或者密码有错误"))
Esempio n. 17
0
 def post(self):
     mobile = self.json_args.get("mobile")
     password = self.json_args.get("password")
     if not all([mobile, password]):
         return self.write(dict(errno=RET.PARAMERR, errmsg="参数不完整"))
     try:
         ret = self.application.db.get(
             "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%s",
             mobile)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="手机号尚未注册!"))
     password = hashlib.sha256(config.passwd_hash_key +
                               password).hexdigest()
     if ret and ret["up_passwd"] == unicode(password):
         try:
             self.session = Session(self)
             self.session.data['user_id'] = ret['up_user_id']
             self.session.data['name'] = ret['up_name']
             self.session.data['mobile'] = mobile
             self.session.save()
         except Exception as e:
             logging.error(e)
         return self.write(dict(errno=RET.OK, errmsg="OK"))
     else:
         return self.write(dict(errno=RET.DATAERR, errmsg="账号或密码错误!"))
Esempio n. 18
0
    def post(self):
        mobile = self.json_args.get('mobile')
        passwd = self.json_args.get('passwd')
        passwd2 = self.json_args.get('passwd2')

        if not all((mobile, passwd)):
            return self.write(dict(errno=RET.PARAMERR, errmsg="手机或密码传错"))
        # 判断密码位数
        if len(passwd) < 8 or len(passwd2) < 8:
            return self.write(dict(errno=RET.DATAERR, errmsg="密码必须大于7位"))
        if passwd != passwd2:
            return self.write(dict(error=RET.DATAERR, errmsg="两次密码不一致"))
        safe_passwd = sha1(passwd).hexdigest()
        # name为昵称
        data = dict(mobile=mobile, safe_passwd=safe_passwd, name=mobile)
        try:
            sql = "insert into ih_user_profile(up_name,up_mobile,up_passwd) values(%(name)s,%(mobile)s,%(safe_passwd)s)"
            ret = self.db.execute(sql, **data)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.DBERR, errmsg="信息已存在"))
        try:
            # 将session实例化
            self.sessObj = Session(self, mobile)
            self.sessObj.data = dict(user_id=ret, name=mobile, mobile=mobile)
            logging.error(self.sessObj.data)
            self.sessObj.save()
        except Exception as e:
            logging.error(e)

            logging.error("-" * 40)

            return self.write(dict(errno=RET.DBERR, errmsg="保存出错"))
        self.write(dict(errno=RET.OK, errmsg='OK'))
Esempio n. 19
0
class LoginHandler(BaseHandler):
	def post(self):
		mobile = self.json_args.get("mobile")
		password = self.json_args.get("password")

		if not all([mobile, password]):
			return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
		if not re.match(r"^1\d{10}$", mobile):
			return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

		sql = "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s"
		res = self.db.get(sql,mobile=mobile)

		#if res and res["up_passwd"] == unicode(hashlib.sha256(password+config.passwd_hash_key).hexdigest()):
		if res and res["up_passwd"] == password:
			try:
				self.session = Session(self)
				self.session.data["user_id"] = res["up_user_id"]
				self.session.data["name"] = res["up_name"]
				self.session.data["mobile"] = mobile
				self.session.save()
			except Exception as e:
				logging.error(e)
			return self.write(dict(errcode=RET.OK, errmsg="登录成功"))
		else:
			return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误"))
Esempio n. 20
0
    def post(self):
        # 获取要修改的用户名
        name = self.json_args.get('name')
        if not name:
            # 判断用户是否正确
            return self.write(dict(errcode=RET.PARAMERR,
                                   errmsg="params error"))
        # 获取session.data
        data = self.get_current_user()
        # 获取user_id方便修改
        user_id = data['user_id']
        # 修改数据库
        sql = 'UPDATE  ih_user_profile SET up_name = %(name)s where up_user_id=%(user_id)s'
        try:
            self.db_mysql.execute(sql, name=name, user_id=user_id)
        except Exception as e:
            # 数据修改失败,用户名重复(数据库设置时,用户名是唯一的)
            logging.ERROR(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="name has exist"))
        # 获取session
        session = Session(self)
        # 更改session
        session['name'] = name
        try:
            # 保存修改后的session
            session.save()
        except Exception as e:
            logging.ERROR(e)

        self.write(dict(errcode=RET.OK, errmsg='OK'))
Esempio n. 21
0
    def post(self):
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")

        if not all([mobile, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))

        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号格式错误"))

        res = self.db.get(
            "select up_user_id, up_name, up_passwd from ih_user_profile where up_mobile=%(mobile)s",
            mobile=mobile)
        password = hashlib.sha256(password +
                                  config.passwd_hash_key).hexdigest()

        if res and res["up_passwd"] == unicode(password):
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errcod=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 22
0
    def post(self, *args, **kwargs):
        # 获取前端传递过来的JSON数据,并将其提取出来
        mobile = self.json_args.get('mobile')
        password = self.json_args.get('password')

        # 检查参数
        if not all([mobile, password]):
            return self.write(dict(errorcode=RET.PARAMERR, errormsg="参数错误"))
        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errorcode=RET.DATAERR, errormsg="手机号错误"))

        # 检查秘密是否正确
        res = self.db.get("select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s",
                          mobile=mobile)
        password = hashlib.sha256(password + config.passwd_hash_key).hexdigest()

        if res and res["up_passwd"] == unicode(password):
            # 生成session数据
            # 返回客户端
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errorcode=RET.OK, errormsg="OK"))
        else:
            return self.write(dict(errorcode=RET.DATAERR, errormsg="手机号或密码错误!"))
Esempio n. 23
0
    def post(self):

        mobile = self.json_args.get("mobile")
        passwd = self.json_args.get("passwd")
        logging.error(mobile)
        if not all((mobile, passwd)):
            return self.write(dict(errno=RET.DATAERR, errmsg="数据输入不全"))
        if not re.match(r"^[1][34578][0-9]{9}$", mobile):
            return self.write(dict(errno='4099', errmsg="手机号格式错误"))
        # 尝试从数据库获取手机号
        try:
            sql = "select up_user_id,up_name,up_mobile,up_passwd from ih_user_profile where up_mobile=%(mobile)s"
            data = dict(mobile=mobile)
            db_data = self.db.get(sql, **data)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.DBERR, errmsg="查询失败"))
        logging.error(db_data)
        if not db_data:
            return self.write(dict(errno=RET.DATAERR, errmsg="手机号未注册"))
        # 给密码加密
        safe_passwd = sha1(passwd).hexdigest()
        if safe_passwd != db_data['up_passwd']:
            return self.write(dict(errno=RET.DATAERR, errmsg="密码错误"))
        self.sess_obj = Session(self, mobile)
        self.sess_obj.data = dict(user_id=db_data['up_user_id'],
                                  name=db_data['up_name'],
                                  mobile=mobile)
        self.sess_obj.save()
        self.write(dict(errno=RET.OK, errmsg="OK"))
Esempio n. 24
0
    def post(self):
        # 获取参数
        id = self.json_args.get('id')
        passwd = self.json_args.get('password')
        remember = self.json_args.get('remember')

        # 检查参数
        if not all([id, passwd, remember]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))

        # 检查密码正确与否
        res = None
        try:
            with self.db.cursor() as cursor:
                cursor.execute('SELECT ui_passwd, ui_role FROM ms_user_info WHERE ui_id=%(id)s', {"id": id})
                res = cursor.fetchone()
                self.db.commit()
                cursor.close()
            passwd = hashlib.sha256((passwd + config.passwd_hash_key).encode('utf-8')).hexdigest()
            if not (res and res[0] == passwd):
                return self.write(dict(errcode=RET.DATAERR, errmsg="账号或密码错误!"))
            # 成功,生成session数据
            self.session = Session(self)
            self.session.data['user_id'] = id
            self.session.data['user_role'] = str(res[1])
            self.session.save()
            return self.write(dict(errcode=RET.OK, errmsg="登录成功"))
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.PARAMERR, errmsg="账号或密码错误"))
Esempio n. 25
0
    def post(self):
        mobile = self.json_args.get('mobile')
        phonecode = self.json_args.get('phonecode')
        passwd1 = self.json_args.get('passwd1')
        passwd2 = self.json_args.get('passwd2')

        if (passwd1 and passwd2 and passwd1 == passwd2):
            # if re.match(r'\S{5, 10}', passwd1):
            pattern = re.compile(r'^\S{5,10}$')
            if pattern.match(passwd1):

                secure_passwd = hashlib.md5(passwd1 +
                                            constants.SALT).hexdigest()
                try:
                    self.db.execute(
                        'insert into ih_user_profile(up_name, up_mobile, up_passwd, up_admin) values(%s, %s, %s, %s)',
                        mobile, mobile, secure_passwd, 0)

                except Exception as e:
                    logging.error(e)
                    return self.write(dict(erron=RET.DBERR, errmsg='数据库写入错误'))

                session = Session(self)

                session.data['uname'] = mobileewq

                session.save()

                return self.write(dict(erron=RET.OK, errmsg='/index.html'))

            return self.write(dict(erron=RET.DATAERR, errmsg='密码格式不正确'))

        self.write(dict(erron=RET.DATAERR, errmsg='密码不能为空且两次输入密码需一致'))
Esempio n. 26
0
    def post(self):
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")
        print mobile
        print password
        if not all((mobile, password)):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))

        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))
        #检查密码是否正确

        res = self.db.get(
            "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s",
            mobile=mobile)
        #passwd已经sha256加密,所以要对用户输入的密码进行加密,把加密的结果与数据库对比
        password = hashlib.sha256(config.passwd_hash_key +
                                  password).hexdigest()
        if res and res["up_passwd"] == unicode(password):
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            # return self.write({"errno":0,"errmsg":"Ok"})
            return self.write(dict(errcode=RET.OK, errmsg="OK"))

        elif res == None:
            # return self.write({'errno':2,"errmsg":"用户不存在"})
            return self.write(dict(errcode=RET.DBERR, errmsg="用户不存在"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 27
0
class RegisterHandler(BaseHandler):
    """注册"""
    def post(self):
        mobile = self.get_argument("mobile") 
        sms_code = self.get_argument("phonecode")
        password = self.get_argument("password") 
        if not all([mobile, sms_code, password]):
            return self.write({"errno":1, "errmsg":"参数错误"})
        real_code = self.redis.get("SMSCode" + mobile)
        if real_code != str(sms_code) and str(sms_code) != "2468":
            return self.write({"errno":2, "errmsg":"验证码无效!"})
        password = hashlib.sha256(config.passwd_hash_key + password).hexdigest()
        try:
            res = self.db.execute("insert into ih_user_profile(up_name,up_mobile,up_passwd) values(%(name)s,%(mobile)s,%(passwd)s)", name=mobile, mobile=mobile, passwd=password)
        except Exception as e: 
            logging.error(e)
            return self.write({"errno":3, "errmsg":"手机号已注册!"})
        try:
            self.session = Session(self)
            self.session.data['user_id'] = res
            self.session.data['name'] = mobile
            self.session.data['mobile'] = mobile
            self.session.save()
        except Exception as e:
            logging.error(e)
        self.write({"errno":0, "errmsg":"OK"})
Esempio n. 28
0
class LoginHandler(BaseHandler):
    """登录"""
    def post(self):
        # 获取参数
        mobile = self.json_args.get("mobile")
        password = self.json_args.get("password")

        # 检查参数
        if not all([mobile, password]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))
        if not re.match(r"^1\d{10}$", mobile):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号错误"))

        # 检查密码是否正确
        res = self.db.get(
            "select up_user_id,up_name,up_passwd from ih_user_profile where up_mobile=%(mobile)s",
            mobile=mobile)
        password = hashlib.sha256(
            (password + config.passwd_hash_key).encode("utf-8")).hexdigest()
        if res and res["up_passwd"] == password:
            # 生成session数据
            # 返回客户端
            try:
                self.session = Session(self)
                self.session.data['user_id'] = res['up_user_id']
                self.session.data['name'] = res['up_name']
                self.session.data['mobile'] = mobile
                self.session.save()
            except Exception as e:
                logging.error(e)
            return self.write(dict(errcode=RET.OK, errmsg="OK"))
        else:
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
Esempio n. 29
0
 def post(self):
     mobile = self.json_args.get("mobile")
     password = self.json_args.get("password")
     phonecode = self.json_args.get("phonenum")
     if not all((mobile, password, phonecode)):
         return self.write(dict(errno=RET.PARAMERR, errmsg="参数不完整"))
     try:
         real_sms_code_text = self.redis.get("sms_code_%s" % mobile)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="查询出错"))
     if not real_sms_code_text:
         return self.write(dict(errno=RET.NODATA, errmsg="短信验证码已过期!"))
     if real_sms_code_text.lower() != phonecode.lower():
         return self.write(dict(errno=RET.DATAERR, errmsg="短信验证码错误!"))
     password = hashlib.sha256(config.passwd_hash_key +
                               password).hexdigest()
     try:
         ret = self.application.db.execute(
             "INSERT INTO ih_user_profile(up_name,up_mobile,up_passwd) VALUES(%s, %s,%s)",
             mobile, mobile, password)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DATAEXIST, errmsg="手机号已被注册!"))
     try:
         self.session = Session(self)
         self.session.data['user_id'] = ret
         self.session.data['name'] = mobile
         self.session.data['mobile'] = mobile
         self.session.save()
     except Exception as e:
         logging.error(e)
     return self.write(dict(errno=RET.OK, errmsg="OK"))
Esempio n. 30
0
 def post(self):
     mobile = self.json_args.get("mobile")
     sms_code = self.json_args.get("phonecode")
     password = self.json_args.get("password")
     if not all([mobile, sms_code, password]):
         return self.write({"errno": RET.PARAMERR, "errmsg": "参数错误"})
     real_code = self.redis.get("sms_code_%s" % mobile)
     if real_code != str(sms_code) and str(sms_code) != "2468":
         return self.write({"errno": RET.DATAERR, "errmsg": "验证码无效!"})
     password = hashlib.sha256(config.passwd_hash_key +
                               password).hexdigest()
     try:
         res = self.db.execute(
             "insert into ih_user_profile(up_name,up_mobile,up_passwd) values(%(name)s,%(mobile)s,%(passwd)s)",
             name=mobile,
             mobile=mobile,
             passwd=password)
     except Exception as e:
         logging.error(e)
         return self.write({"errno": RET.DATAEXIST, "errmsg": "手机号已注册!"})
     try:
         self.session = Session(self)
         self.session.data['user_id'] = res
         self.session.data['name'] = mobile
         self.session.data['mobile'] = mobile
         self.session.save()
     except Exception as e:
         logging.error(e)
     self.write({"errno": RET.OK, "errmsg": "OK"})
Esempio n. 31
0
 def get(self):
     try:
         self.session = Session(self)
         self.session.clear()
     except Exception as e:
         print "hahah"
         logging.error(e)
     return self.write(dict(errno=RET.OK, errmsg="OK"))
Esempio n. 32
0
def logout():
    db = sqlite3_connection()

    db.execute_sql_cmd("""UPDATE users SET logged_in = 0 WHERE name = ?""",
                       (Session.get_session_by_name("username"), ))

    db.close_connection()
    Session.clear_all()
    return redirect(url_for("home_app.home"))
Esempio n. 33
0
    def post(self):
        # 获取参数
        mobile = self.json_args.get("mobile")
        sms_code = self.json_args.get("phonecode")
        password = self.json_args.get("password")

        # 检查参数
        if not all([mobile, sms_code, password]):
            return  self.write(dict(errcode=RET.PARAMERR, errmsg="参数不完整"))

        if not re.match(r"^1\d{10}$", mobile):
            return  self.write(dict(errcode=RET.DATAERR, errmsg="手机号格式错误"))

        # 如果产品对于密码长度有限制,需要在此做判断
        # if len(password)<6

        # 判断短信验证码是否真确
        if "2468" != sms_code:
            try:
                real_sms_code = self.redis.get("sms_code_%s" % mobile)
            except Exception as e:
                logging.error(e)
                return  self.write(dict(errcode=RET.DBERR, errmsg="查询验证码出错"))

            # 判断短信验证码是否过期
            if not real_sms_code:
                return self.write(dict(errcode=RET.NODATA, errmsg="验证码过期"))

            # 对比用户填写的验证码与真实值
            # if real_sms_code != sms_code and  sms_code != "2468":
            if real_sms_code != sms_code:
                return self.write(dict(errcode=RET.DATAERR, errmsg="验证码错误"))

            try:
                self.redis.delete("sms_code_%s" % mobile)
            except Exception as e:
                logging.error(e)

        # 保存数据,同时判断手机号是否存在,判断的依据是数据库中mobile字段的唯一约束
        passwd = hashlib.sha256(password + config.passwd_hash_key).hexdigest()
        sql = "insert into ih_user_profile(up_name, up_mobile, up_passwd) values(%(name)s, %(mobile)s, %(passwd)s);"
        try:
            user_id = self.db.execute(sql, name=mobile, mobile=mobile, passwd=passwd)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DATAEXIST, errmsg="手机号已存在"))

        # 用session记录用户的登录状态
        session = Session(self)
        session.data["user_id"] = user_id
        session.data["mobile"] = mobile
        session.data["name"] = mobile
        try:
            session.save()
        except Exception as e:
            logging.error(e)

        self.write(dict(errcode=RET.OK, errmsg="注册成功"))
Esempio n. 34
0
	def post(self):
		mobile = self.json_args.get("mobile")
		sms_code = self.json_args.get("phonecode")
		password = self.json_args.get("password")

		if not all([mobile, sms_code, password]):
			return self.write(dict(errcode = RET.PARAMERR, errmsg = "参数不完整"))
		if not re.match(r"^1\d{10}$", mobile):
			return self.write(dict(errcode = RET.DATAERR, errmsg="手机号错误"))

		if "2468" != sms_code:
			try:
				real_sms_code = self.redis.get("sms_code_%s"%mobile)
			except Exception as e:
				logging.error(e)
				return self.write(dict(errcode=RET.DBERR, errmsg="查询验证码错误"))

			if not real_sms_code:
				return self.write(dict(errcode=RET.DATAERR, errmsg="验证码过期"))

			if real_sms_code != sms_code:
				return self.write(dict(errcode=RET.DATAERR, errmsg="验证码错误"))

			try:
				self.redis.delete("sms_code_%s", mobile)
			except Exception as e:
				logging.error(e)

		passwd = hashlib.sha256(password + config.passwd_hash_key).hexdigest()
		sql = "insert into ih_user_profile(up_name,up_mobile,up_passwd) values(%(name)s, %(mobile)s, %(passwd)s);"
		try:
			user_id = self.db.execute(sql,name=mobile, mobile=mobile, passwd=passwd)
		except Exception as e:
			logging.error(e)
			return self.write(dict(errcode=RET.DATAEXIST,errmsg="手机号存在"))
		session = Session(self)
		session.data["user_id"] = user_id
		session.data["mobile"] = mobile
		session.data["name"] = name
		try:
			session.save()
		except Exception as e:
			logging.error(e)
			
		self.write(dict(errcode=RET.OK, errmsg="注册成功"))