【发布时间】:2015-12-08 15:21:08
【问题描述】:
简而言之:
通过仅使用Flask micro-framework(及其依赖项),我们可以执行从一条路由到另一条路由的内部重定向?
例如:
- 用户将注册表单(
username和password)提交给@app.route('/register', methods=['POST']) - 如果注册成功,Flask 内部会通过
username和password向@app.route('/login', methods['POST'])发送HTTP POST - 处理并登录用户
详情:
我正在使用Flask 和Flask-JWT 扩展构建一个REST API。更具体地说,我正在实现登录和注册。
登录完美运行并返回带有令牌的 JSON 对象。
以下是我的(登录)身份验证处理程序(即/auth(POST 请求)-默认 Flask-JWT 身份验证 URL 规则):
@jwt.authentication_handler
def authenticate(username, password):
user = User.query.filter_by(username=username).first()
if user and user.verify_password(password):
return user
return None
成功登录返回:
{
"token": "<jwt-token>"
}
以下是我的注册路线:
@app.route('/register', methods=['PUT'])
def register():
username = request.form.get('username')
password = request.form.get('password')
if username is None or password is None:
abort(400) # missing parameters
user = User.query.filter_by(username=username).first()
if user:
abort(400) # user exists
else:
user = User(user=user)
user.hash_password(password)
db.session.add(user)
db.session.commit()
# How do we generate a token?
# Perform an internal redirect to the login route?
return jsonify({'token': <jwt-token>}), 201
【问题讨论】:
-
我不认为您可以使用帖子数据进行重定向...否则您可能只想查看 flask.redirect ...
-
我认为您所说的“内部重定向”是指通过路由表从 register() 函数调用登录功能,方法是设置一个虚假的外部请求。我不会回答 >that
标签: python flask registration flask-jwt