def put(self, request): token = request.GET.get('token') if not token: return JsonResponse({ 'code': 400, 'errmsg': '缺少必传参数' }) user = User.check_verify_email_token(token) if not user: return JsonResponse({ 'code': 400, 'errmsg': '无效的token' }) try: user.email_active = True user.save() except Exception as e: logger.error(e) return JsonResponse({ 'code': 400, 'errmsg': '激活失败' }) return JsonResponse({ 'code': 0, 'errmsg': 'ok' })
def get(self, request): # 获取前端以查询字符串方式传过来的token token = request.query_params.get('token') #将token解密 并查询对应的user对象 里面是有逻辑的 user = User.check_verify_email_token(token) #修改user对象的email_active为True if user is None: return Response({'message': '激活失败'}, status=status.HTTP_400_BAD_REQUEST) # 项目中所有文件(views,serlizer,utils,models)都支持python语法对模型对象的相关操作 # 模型对象.属性赋值(对数据库中的某个对象的值进行修改) 从表里面查找某一个用户或者查询集 创建一个新的用户并保存等等 # user.check_password set_password等等 user = oauthqqmodel.user # 外键关联的用户对象等等return Response({ # 'token':token, # 'username':user.username, # 'user_id':user.id # }) # 创建用户的时候要注意user.set_password(validated_data.get('password')) # user.save() 密码这里比较特殊 不能objects.create() #还要注意user = User.objects.get(id=id,email=email) # except User.DoesNotExist: user.email_active = True user.save() # 响应 return Response({'message': 'ok'})
def put(self, request): """ 用户邮箱验证: 1. 获取token参数并进行校验(token必传,对token解密) 2. 将对应的用户邮箱验证标记email_active设置为True 3. 返回应答 """ # 1. 获取token参数并进行校验(token必传,对token解密) token = request.query_params.get('token') # None if token is None: return Response({'message': '缺少token参数'}, status=status.HTTP_400_BAD_REQUEST) # 对token解密 user = User.check_verify_email_token(token) if user is None: # 解密失败 return Response({'message': '无效的token数据'}, status=status.HTTP_400_BAD_REQUEST) # 2. 将对应的用户邮箱验证标记email_active设置为True user.email_active = True user.save() # 3. 返回应答 return Response({'message': 'OK'})
def put(self, request): """实现邮箱验证逻辑""" # 接收参数 token = request.GET.get('token') # 校验参数:判断 token 是否为空和过期,提取 user if not token: return http.JsonResponse({'code':400, 'errmsg':'缺少token'}) # 调用上面封装好的方法, 将 token 传入 user = User.check_verify_email_token(token) if not user: return http.JsonResponse({'code':400, 'errmsg':'无效的token'}) # 修改 email_active 的值为 True try: user.email_active = True user.save() except Exception as e: logger.error(e) return http.JsonResponse({'code':400, 'errmsg':'激活邮件失败'}) # 返回邮箱验证结果 return http.JsonResponse({'code':0, 'errmsg':'ok'})
def put(self, request): """ 用户邮箱验证的API: 1. 获取token并进行校验(token必传,token是否有效) 2. 设置对应用户的邮箱验证标记email_active 3. 返回应答,邮箱验证成功 """ # 1. 获取token并进行校验(token必传,token是否有效) token = request.query_params.get('token') if token is None: return Response({'message': '缺少token参数'}, status=status.HTTP_400_BAD_REQUEST) # token是否有效 user = User.check_verify_email_token(token) if user is None: return Response({'message': '无效的token数据'}, status=status.HTTP_400_BAD_REQUEST) # 2. 设置对应用户的邮箱验证标记email_active user.email_active = True user.save() # 3. 返回应答,邮箱验证成功 return Response({'message': 'OK'})
def put(self, request): # 接收参数 token = request.GET.get('token') # 校验参数 if not token: return JsonResponse({ 'code': 400, 'errmsg': '缺少查询参数' }) user = User.check_verify_email_token(token) if not user: return JsonResponse({ "code": 400, 'errmsg': '无效的token' }) # 处理数据 try: user.email_active = True user.save() except Exception as e: logger.error(e) return JsonResponse({ 'code': 400, 'errmsg': '激活邮件失败' }) # 构建响应 return JsonResponse({ 'code': 0, 'errmsg': 'ok' })
def get(self, request): """实现邮箱验证逻辑""" # 接收参数 token = request.GET.get('token') # 校验参数:判断token是否为空 或 过期,提取user if not token: return HttpResponseBadRequest('缺少token值') # 调用上面封装好的方法,将token传入 user = User.check_verify_email_token(token) if not user: return HttpResponseForbidden('无效的token值') # 修改email_active的值为True try: user.email_active = True user.save() except Exception as e: logger.error(e) return HttpResponseServerError('激活邮件失败') # 返回邮箱验证结果 return redirect(reverse('users:info'))
def put(self, request): """ 激活用户邮箱: 1. 获取token参数并进行校验(token必传,token是否有效) 2. 设置用户邮箱验证标记 3. 返回应答 """ # 1. 获取token参数并进行校验(token必传,token是否有效) token = request.query_params.get('token') if not token: return Response({'message': '缺少token信息'}, status=status.HTTP_400_BAD_REQUEST) user = User.check_verify_email_token(token) if user is None: return Response({'message': '无效的token信息'}, status=status.HTTP_400_BAD_REQUEST) # 2. 设置用户邮箱验证标记 user.email_active = True user.save() # 3. 返回应答 return Response({'message': 'OK'})
def put(self, request): """ 用户邮箱验证 """ # 1.获取加密的用户token并进行校验 token = request.GET.get('token') if not token: return JsonResponse({'code': 400, 'message': '缺少token参数!'}) # 对用户的信息进行解密 user = User.check_verify_email_token(token) if user is None: return JsonResponse({'code': 400, 'message': 'token信息有误!'}) # 2.设置对应用户的邮箱验证标记为已验证 try: user.email_active = True user.save() except Exception as e: return JsonResponse({'code': 400, 'message': '验证邮箱失败!'}) # 3.返回响应 return JsonResponse({'code': 0, 'message': 'OK'})
def get(self,request): #获取token token=request.query_params.get('token') if not token: return Response({"缺少的token"}, status=status.HTTP_400_BAD_REQUEST) #校验token,保存 result=User.check_verify_email_token(token) #返回 if result: return Response({"message":"ok"}) else: return Response({"非法的token"},status=status.HTTP_400_BAD_REQUEST)
def put(self, request): # 1、提取查询字符串中token token = request.GET.get('token') # 2、校验token user = User.check_verify_email_token(token) if not user: return JsonResponse({'code': 400, 'errmsg': '验证邮件无效!'}) # 3、如果token有效,把邮箱的激活状态设置为True user.email_active = True user.save() return JsonResponse({'code': 0, 'errmsg': '邮箱激活成功!'})
def get(self, request): # 获取token token = request.query_params.get('token') if not token: return Response({'message': '缺少token'}, status=status) # 验证token user = User.check_verify_email_token(token) if user is None: return Response({'message': '连接信息无效'}, status=status) else: user.email_active = True user.save() return Response({'message': "ok"})
def put(self, request): token = request.GET.get("token") if not token: return JsonResponse({"code": 400, "message": "缺少token参数"}) user = User.check_verify_email_token(token) if user is None: return JsonResponse({"code": 400, "message": "传入token信息有误"}) try: user.email_active = True user.save() except Exception as e: return JsonResponse({"code": 400, "message": "邮箱验证失败"}) return JsonResponse({"code": 0, "message": "OK"})
def get(self, request): """获取token""" token = request.query_params.get("token") if not token: return Response({"message":"缺少token"}, status=status.HTTP_400_BAD_REQUEST) # 校验token user = User.check_verify_email_token(token) if user is None: return Response({"messsage":"链接信息无效"}, status=status.HTTP_400_BAD_REQUEST) else: user.email_active = True user.save() return Response({"message":"OK"})
def get(self, request): token = request.query_params.get('token') if not token: return Response({'message': '缺少token'}, status=status.HTTP_400_BAD_REQUEST) user = User.check_verify_email_token(token) if user is None: return Response({'message': '链接信息无效'}, status=status.HTTP_400_BAD_REQUEST) else: user.email_active = True user.save() return Response({'message': 'OK'})
def get(self, request): # note--获取token, DRF中所有的查询参数在query_params中, 所有路径参数在args(匿名), kwargs(命名)中 token = request.query_params.get('token') if not token: return Response({'message': '缺少token'}, status=status.HTTP_400_BAD_REQUEST) # 验证token, 该方法是静态方法, 所以不需要具体用户对象就可使用 user = User.check_verify_email_token(token) if user is None: return Response({'message': '链接信息无效'}, status=status.HTTP_400_BAD_REQUEST) else: user.email_active = True user.save() return Response({'message': 'OK'})
def get(self, request): # 1. 获取前token 查询参数 token = request.query.get('token') if not token: return Response({'message': '缺少token'}, status=status.HTTP_400_BAD_REQUEST) # 2.解密token获取user user = User.check_verify_email_token(token) if not user: return Response({'message': '无效的token'}, status=status.HTTP_400_BAD_REQUEST) # 修改邮箱验证的状态 user.email_active = True user.save() return Response({'message': 'ok'})
def get(self,request): # 获取token, 并判断 token = request.query_params.get('token') if not token: return Response({'message':'缺少token'},status=status.HTTP_400_BAD_REQUEST) # 获取token中的id,email # 查询用户, 并判断是否存在 user = User.check_verify_email_token(token) if user is None: return Response({'message':'链接无效'},status=status.HTTP_400_BAD_REQUEST) else: # 修改状态 user.email_active = True user.save() # 返回响应 return Response({'message':'ok'})
def get(self, request): token = request.query_params.get("token") if not token: return Response({"message": "缺少token"}, status=status.HTTP_400_BAD_REQUEST) # 校验token,返回用户模型对象 user = User.check_verify_email_token(token) if not user: return Response({"message": "链接失效"}, status=status.HTTP_400_BAD_REQUEST) else: # 用户邮箱通过验证,设置为已激活状态 user.email_active = True user.save() return Response({"message": "邮箱验证成功"})
def get(self, request): # 获取token token = request.query_params.get('token') if not token: return Response({"message": '缺少token'}, status=status.HTTP_400_BAD_REQUEST) # 验证token,并返回user user = User.check_verify_email_token(token) if not user: return Response({"message": '无效的token'}, status=status.HTTP_400_BAD_REQUEST) # 修改当前user的email_active属性的值为True user.email_active = True user.save() return Response({'message': 'Ok'})
def get(self, request): token = request.GET.get('token') if not token: return http.HttpResponseBadRequest('缺少token') user = User.check_verify_email_token(token) if not user: return http.HttpResponseForbidden('无效的token') try: user.email_active = True user.save() except BaseException: return http.HttpResponseServerError('激活邮件失败') # 返回邮箱验证结果 return redirect(reverse('users:info'))
def put(self, request): # 获取参数 token = request.GET.get('token') # 判断参数是否为空 if not token: return JsonResponse({'code': 400, 'errmsg': '缺少token'}) # 调用User model的方法获取用户 user = User.check_verify_email_token(token) if not user: return JsonResponse({'code': 400, 'errmsg': '无效的token'}) # 将用户的激活值设为True try: user.email_active = True user.save() except Exception as e: logger.error(e) return JsonResponse({'code': 400, 'errmsg': '激活邮件失败'}) return JsonResponse({'code': 0, 'errmsg': 'ok'})
def get(self, request): """ 验证邮箱是一个根据token查询匹配用户的过程,get请求即可 """ # 从url查询字符串中获取token token = request.query_params.get("token") print("用户从邮箱url中跳转到验证链接时在界面created加载之前发送请求通过url传递的token:", token) if not token: return Response({"message": "缺少token"}, status=status.HTTP_400_BAD_REQUEST) # 通过在User模型类自定义的静态方法验证token,验证成功会返回当前用户对象 user = User.check_verify_email_token(token) if user is None: # 表明token有问题,可能过期 return Response({"message": "验证信息无效"}, status=status.HTTP_400_BAD_REQUEST) # 如果用户存在,则将用户数据的邮箱激活状态设为True,返回成功 user.email_active = True user.save() return Response({"message": "OK"})
def put(self, request): """ 用户邮箱验证 1. 获取token参数并进行校验(token必传,token是否有效) 2. 设置用户邮箱验证的标记为True 3. 返回应答,验证通过 """ # 1. 获取token参数并进行校验(token必传,token是否有效) token = request.query_params.get('token') if token is None: return Response({'message': '缺少token参数'}, status=status.HTTP_400_BAD_REQUEST) # token是否有效 user = User.check_verify_email_token(token) if user is None: return Response({'message', '无效的token数据'}, status=status.HTTP_400_BAD_REQUEST) # 3.返回应答,验证通过 return Response({'message': 'OK'})
def get(self, request): """ 实现邮箱验证逻辑 :param request: :return: """ #接受参数 token = request.GET.get('token') #检验参数 if not token: return http.HttpResponseForbidden('缺少token') #调用之前封装好的方法,江token传入将其解密 user = User.check_verify_email_token(token) if not user: return http.HttpResponseForbidden('无效的token') #修改email_active的的状态为激活 try: user.email_active = True user.save() except Exception as f: logger.error(f) return http.HttpResponseForbidden('邮件激活失败') #返回邮件验证结果 return redirect(reverse('users:info'))