def confirm(phone, input_code): # 从缓存cache中读取phone对应的验证码 # 和input_code进行比较,如果通过则返回True if rd.get(phone): if input_code == rd.get(phone).decode(): rd.delete(phone) return True
def confirm_code(phone, input_code): try: phone1 = "*" + phone if rd.get(phone1).decode() == input_code: return True else: return False except: return False
def confirm(phone, input_code): # 从缓存cache中读取phone对应的验证码 # 和input_code进行比较,如果通过则返回True # print(rd.get(phone)) # print(rd.get(phone).decode()) try: if rd.get(phone).decode() == input_code: return True else: return False except: return False
def user_login(): # 登录 req_data = request.get_json() code = get_code() if not all((req_data.get('tel', False), req_data.get('idtf', False))): phone = str(req_data.get('tel')) result = check_login_tel(phone).get_json() if result.get('code') == 300: resp = send_sms_code(phone, code).decode() if resp[-4:-2] == "OK": rd.set(phone, code) rd.expire(phone, 120) return jsonify({ 'code': 200, 'msg': '验证码发送成功', }) else: return jsonify({'code': 400, 'msg': '验证码发送失败'}) else: return jsonify({'code': 403, 'msg': '该手机号尚未注册注册!'}) else: phone = req_data.get('tel') idtf = str(req_data.get('idtf')) temp2 = rd.get(phone) if not temp2: return jsonify({ 'code': 404, 'msg': '验证码已过期', }) temp2 = temp2.decode() if temp2 == idtf: token = cache.new_token() data = UserDao().get_jd_user(phone) user_id = data[0]['user_id'] pay_pwd = data[0]['pay_pwd'] if pay_pwd is None: result_pwd = False else: result_pwd = True rd.set(token, user_id) rd.expire(token, 3600 * 12) return jsonify({ 'code': 200, 'msg': '登录成功!', 'token': token, 'data': data[0], 'bool_pay_pwd': result_pwd }) else: return jsonify({'code': 400, 'msg': '注册失败,验证码错误'})
def check_sms(u_phone, msg_code): res = None try: r_msg_code = rd.get(u_phone) if not r_msg_code: return {'code': 203, 'msg': '短信验证码不存在,或已过期'} r_msg_code = r_msg_code.decode() if r_msg_code != msg_code: return {'code': 204, 'msg': '短信验证码输入错误'} except Exception as e: api_logger.error(e) res = {'code': 202, 'msg': '数据库查询失败'} return res
def user_regist(): code = get_code() req_data = None print(code) api_logger.info(request.headers) if request.headers['Content-Type'].startswith('application/json'): req_data = request.get_json() if req_data is None: api_logger.warn('%s 请求参数未上传-json' % request.remote_addr) return jsonify({'code': 400, 'msg': '请上传json数据,且参数必须按api接口标准给定'}) api_logger.debug(req_data) if not all((req_data.get('tel', False), req_data.get('idtf', False))): phone = str(req_data.get('tel')) ret = re.match(r"^1[35678]\d{9}$", phone) if ret: result = check_login_tel(phone).get_json() if result.get('code') == 400: resp = send_sms_code(phone, code).decode() if resp[-4:-2] == "OK": rd.set(phone, code) rd.expire(phone, 120) return jsonify({ 'code': 200, 'msg': '验证码发送成功', }) else: return jsonify({'code': 400, 'msg': '验证码发送失败'}) else: return jsonify({'code': 403, 'msg': '该账号已注册'}) else: return jsonify({'code': 400, 'msg': '请输入正确的手机号'}) else: phone = req_data.get('tel') idtf = str(req_data.get('idtf')) temp2 = rd.get(phone).decode() if temp2 == idtf: user_id = get_uid() dao = UserDao() req_data = { 'tel': phone, 'user_id': user_id, 'user_name': user_id, 'auth_string': 'jd' + phone, "asset": 0, "u_intg": 100 } dao.save(**req_data) token = cache.new_token() rd.set(token, user_id) rd.expire(token, 3600 * 12) req_data = { 'tel': phone, 'user_id': user_id, 'user_name': user_id, 'auth_string': 'jd' + phone, "u_intg": 100, "asset": 0, "token": token, 'bool_pay_pwd': False } return jsonify({'code': 200, 'msg': '注册成功', 'data': req_data}) else: return jsonify({'code': 400, 'msg': '注册失败,验证码错误'})
def get_token_user_id(token): # 通过token获取user_id if check_token(token): return rd.get(token).decode()
from libs import rd import uuid def new_token(): return uuid.uuid4().hex def save_token(token,user_id): #保存 rd.set(token,user_id) rd.expire(token, 12 * 3600) # 有效时间: 12小时 def check_token(token): # 验证token return rd.exists(token) def get_token_user_id(token): # 通过token获取user_id if check_token(token): return rd.get(token).decode() if __name__ == '__main__': # print(rd.exists('e620b40cd10d4049b12fd47787d36dc1')) print(rd.get('6b5110772b24453599e90bfb59794149').decode())