美文网首页
Django 修改密码

Django 修改密码

作者: 孙子衡 | 来源:发表于2021-10-20 09:42 被阅读0次

    Django 修改密码后session失效 用户不能继续保持登录状态问题

    from django.contrib.auth import authenticate, login, logout, update_session_auth_hash
    
    def modify_password(request):
        """
        @api {post} api/modify_password/  3. 修改密码
        @apiDescription 修改密码
        @apiGroup 账号功能
        @apiParam {string} old_password 旧密码
        @apiParam {string} new_password 新密码
        @apiSuccessExample Success-Response:
            {
                'code': 0,
                'message': '修改密码成功'
            }
        @apiErrorExample Error-Response:
            {
                'code': 1,
                'message': '用户名不存在/修改密码失败'
            }
        """
        oldpassword = request.POST.get('old_password')
        newpassword = request.POST.get('new_password')
    
        try:
            user = request.user
            if user.check_password(oldpassword):  # 判断前端传过来的密码是否正确,如果正确,返回一个值
                user.set_password(newpassword)  # 把前端输入的新密码加密放进数据库里面
                user.save()
                update_session_auth_hash(request, user)  # 更新session,因为原来的session存放的是旧密码
            else:
                return JsonResponse({'code': 1, 'message': '用户名或旧密码错误'})
        except Exception as e:
            logger.error(e)
            return JsonResponse({'code': 1, 'message': '服务器异常'})
        return JsonResponse({'code': 0, 'message': '修改密码成功'})
    

    相关文章

      网友评论

          本文标题:Django 修改密码

          本文链接:https://www.haomeiwen.com/subject/wuftaltx.html