Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过flask_httpauth从前端发送用户名和密码以进行身份验证?_Python_Html_Flask Restful_Flask Httpauth - Fatal编程技术网

Python 如何通过flask_httpauth从前端发送用户名和密码以进行身份验证?

Python 如何通过flask_httpauth从前端发送用户名和密码以进行身份验证?,python,html,flask-restful,flask-httpauth,Python,Html,Flask Restful,Flask Httpauth,我有一个实现基本用户名和密码身份验证的应用程序。当我从前端发出请求时,我希望能够将用户名和密码验证标题与我的表单数据一起发送 当单击表单提交时,如何将这些用户名和密码标题与请求一起发送 我的验证密码如下所示: @auth.verify\u密码 def验证_密码(用户名、密码): 从电子邮件\u scheduler.models.api\u models导入用户 user=user.query.filter\u by(username=username).first() 如果不是用户或非用户。请验

我有一个实现基本用户名和密码身份验证的应用程序。当我从前端发出请求时,我希望能够将用户名和密码验证标题与我的表单数据一起发送

当单击表单提交时,如何将这些用户名和密码标题与请求一起发送

我的验证密码如下所示:

@auth.verify\u密码
def验证_密码(用户名、密码):
从电子邮件\u scheduler.models.api\u models导入用户
user=user.query.filter\u by(username=username).first()
如果不是用户或非用户。请验证\u密码(密码):
返回错误
g、 用户=用户
返回真值
我的api是:

类任务创建(资源):
方法_decorators={'post':[auth.login_required]}处理auth
def post(自我):
args=task\u parser.parse\u args()
从email_scheduler.models.api_models导入TaskModel
task=TaskModel(task\u text=args.get('task\u text'),user\u id=g.user.id)
任务。将_保存到_db()
返回make_response(jsonify({'message':'Task added to the database'}),200)

使用postman非常简单,我可以跳到授权选项卡,输入用户名和密码。如果我有一个前端,我该怎么做?

不幸的是,您不能显式地提交额外的头,例如
授权
,用于浏览器发出的GET或POST请求的基本身份验证。您可以为JavaScript发出的后台请求添加这样做


对于计划浏览器请求,提交身份验证的唯一方法是通过从端点返回401状态代码来强制浏览器为您执行身份验证。当浏览器获得401密码时,它将显示一个登录对话框,用户在其中输入用户名和密码。之后,浏览器将向发送到该主机的任何后续请求添加一个
授权
标题。

不幸的是,您无法明确提交附加标题,例如
授权
,用于浏览器发出的GET或POST请求的基本身份验证。您可以为JavaScript发出的后台请求添加这样做


对于计划浏览器请求,提交身份验证的唯一方法是通过从端点返回401状态代码来强制浏览器为您执行身份验证。当浏览器获得401密码时,它将显示一个登录对话框,用户在其中输入用户名和密码。之后,浏览器将向发送到该主机的任何后续请求添加一个
授权
标题。

您尚未提供有关前端的任何详细信息。它是基于浏览器的应用程序吗?您是以常规POST请求的形式提交表单,还是以后台/ajax请求的形式提交表单?这些事情将决定你能做什么或不能做什么。@Miguel这是一个基于浏览器的应用程序,我正在提交表单作为一个常规的POST请求。不涉及ajax。只是你没有给出你的前端的任何细节。它是基于浏览器的应用程序吗?您是以常规POST请求的形式提交表单,还是以后台/ajax请求的形式提交表单?这些事情将决定你能做什么或不能做什么。@Miguel这是一个基于浏览器的应用程序,我正在提交表单作为一个常规的POST请求。不涉及ajax。只是简单的html