【发布时间】:2021-03-23 12:23:14
【问题描述】:
我对@987654321@ 和一般的网络应用程序开发比较陌生。
所以,我已经建立了一个基本的登录页面,并且我有一个带有 ldap 身份验证的 web API 来对我组织中的用户进行身份验证。
我正在尝试将登录表单结果发送到网络API url,它接受 2 个参数:用户名和密码。
这是我的 login.html:
<link rel="stylesheet" href="/static/style.css" type="text/css">
{% block body %}
<form action="/login2" method="POST">
<div class="login">
<div class="login-screen">
<div class="app-title">
<h1>Login</h1>
</div>
<div class="login-form">
<div class="control-group">
<input type="text" class="login-field" value="" placeholder="username" name="username">
<label class="login-field-icon fui-user" for="login-name"></label></div>
<div class="control-group">
<input type="password" class="login-field" value="" placeholder="password" name="password">
<label class="login-field-icon fui-lock" for="login-pass"></label></div>
<input type="submit" value="Log in" class="btn btn-primary btn-large btn-block">
</div>
</div>
</div>
</form>
{% endblock %}
这是相关的Flask 代码:
@app.route('/', methods=['GET', 'POST'])
def home():
return render_template('login.html')
@app.route('/login2', methods=['POST'])
def logger():
if request.method == 'POST':
url = "my url to authenticate"
response = requests.post(url, json={"username": "myusername","password": "mypassword"}, verify=False)
data = request.get_json()
print(data)
return "Done"
现在,我只是想通过将我的有效凭据发送到API 来测试API,但它总是返回 None 而不是它应该返回的实际结果。
问题不在于API,因为它可以在带有CURL 的终端上运行。
理想情况下,我想将登录详细信息发送到API。
然后:
- 如果
API响应码为200,则认证成功 - 如果
API响应代码是401,则身份验证应该失败,我可以为此添加一条消息并将它们重定向回来
请帮忙 更新: 所以,这是我现在的 login.html。我现在正在尝试从 login.html 使用 JS 发送表单数据。但是,我仍然不确定如何才能得到响应,而且这段代码在控制台中没有输出,所以我不确定我做错了什么
<link rel="stylesheet" href="/static/style.css" type="text/css">
{% block body %}
<body>
<form method="POST" id="myForm">
<div class="login">
<div class="login-screen">
<div class="app-title">
<h1>Login</h1>
</div>
<div class="login-form">
<div class="control-group">
<input type="text" class="login-field" value="" placeholder="username" name="username">
<label class="login-field-icon fui-user" for="login-name"></label></div>
<div class="control-group">
<input type="password" class="login-field" value="" placeholder="password" name="password">
<label class="login-field-icon fui-lock" for="login-pass"></label></div>
<input type="submit" value="Log in" class="btn btn-primary btn-large btn-block">
</div>
</div>
</div>
</form>
<script>
const myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(e) {
e.preventDefault;
const formData = new FormData(this);
url = "url to authenticate"
response = requests.post(url, json={"username": "myusername","password": "mypassword"}, verify=False)
data = request.get_json()
console.log(data)
flash(data)
});
</script>
</body>
{% endblock %}
【问题讨论】:
标签: python html json api flask