def submit_vcode(request): """获取验证登录注册""" phonenum = request.POST.get('phone') vcode = request.POST.get('vcode') # 判断发送的短信验证和获取的短信验证码是否一致. # 从缓存中取出验证码 cached_vcode = cache.get(keys.VCODE_KEY % phonenum) print(cached_vcode) if vcode == cached_vcode: # 登录或注册 # 得判断是登录还是注册. # 如果能从数据库中查询到这个用户,那么就说明注册过.说明操作是 登录操作. # try: # user = User.get(phonenum=phonenum) # except User.DoesNotExist: # # 注册 # user = User.objects.create(phonenum=phonenum) # 简化一下 user, created = User.get_or_create(phonenum=phonenum, nickname=phonenum) # 登录 request.session['uid'] = user.id # 用户登录成功,记录日志. logger.info(f'User {user.id}, login') return render_json(data=user.to_dict()) else: raise errors.VcodeErr('验证码错误')
def submit_code(request): phonenum = request.POST.get('phonenum') vcode = request.POST.get('vcode') # 检查验证码是否正确 key = keys.VCODE_K % phonenum cache_code = rds.get(key) # 验证码正确时... if vcode and vcode == cache_code: user_num = User.objects.filter(phonenum=phonenum).count() # 如果验证码正确并且已有帐号时... if user_num == 1: user = User.objects.filter(phonenum=phonenum)[0] inf_log.info(f'User Login:{user.id}/{user.phonenum}') request.session['uid'] = user.id return render_json(data=user.to_dict()) # 如果验证码正确 没有帐号时... elif user_num == 0: # 添加 用户 user = User.objects.create(phonenum=phonenum, nickname=phonenum) # 添加 用户资料 profile = Profile.objects.create(id=user.id) # 日志 inf_log.info(f'User Register:{user.id}/{user.phonenum}') # 设置session request.session['uid'] = user.id return render_json(data=user.to_dict()) # 验证码错误时... else: raise errors.VcodeErr('验证码错误')
def submit_vcode(request): '''提交短信验证码,登录''' phone = request.POST.get('phone') vcode = request.POST.get('vcode') cache_vcode = cache.get(keys.VCODE_KEY % phone) if vcode == cache_vcode: # 执行登录过程 user, _ = User.objects.get_or_create(phonenum=phone, nickname=phone) # 在 session 中记录登录状态 request.session['uid'] = user.id return render_json(user.to_dict()) else: raise errors.VcodeErr('验证码错误')
def submit_vcode(request): phonenum = request.POST.get('phonenum') vcode = request.POST.get('vcode') key = keys.VCODE_K % phonenum cached_vcode = rds.get(key) if vcode and vcode == cached_vcode: try: user = User.objects.get(phonenum=phonenum) inf_log.info(f'User Login: {user.id} / {user.phonenum}') except User.DoesNotExist: user = User.objects.create(phonenum=phonenum, nickname=phonenum) inf_log.info(f'User Register: {user.id} / {user.phonenum}') request.session['uid'] = user.id return render_json(user.to_dict()) else: raise errors.VcodeErr('验证码错误')
def submit_vcode(request): '''提交验证码登录''' phonenum = request.POST.get('phonenum') u_vcode = request.POST.get('vcode') key = keys.VCODE_K + str(f'{phonenum}') vcode = rds.get(key) if vcode and vcode == u_vcode: try: user = User.objects.get(phonenum=phonenum) info_log.info(f'User login:{user.id}') except User.DoesNotExist: user = User() user.phonenum = phonenum user.nickname = phonenum user.save() info_log.info(f'User register:{user.phonenum}') request.session['uid'] = user.id return render_json(user.to_dict()) else: # return render_json(data='验证码错误', code=errors.VCODE_ERR) raise errors.VcodeErr('验证码错误')
def submit_vcode(request): '''提交验证码,执行登录注册''' phonenum = request.POST.get('phonenum') vcode = request.POST.get('vcode') key = keys.VCODE_K % phonenum cached_vcode = rds.get(key) if True: # if vcode and vcode == cached_vcode: try: user = User.objects.get(phonenum=phonenum) # 从数据库获取用户 except User.DoesNotExist: # 如果用户不存在,则执行注册流程 user = User.objects.create(phonenum=phonenum, nickname=phonenum) # 在 Session 中记录用户登录的状态 request.session['uid'] = user.id return render_json(user.to_dict()) else: raise errors.VcodeErr('验证码错误')