我正在使用 Flask 构建一个 RESTful 应用程序,它将使用会话来跟踪登录的用户。这是我改编自这个Flask 教程的登录代码
@mod.route('/login/', methods=['GET', 'POST'])
def login():
user = User.query.filter_by(email=request.json['email']).first()
# we use werkzeug to validate user's password
if user and check_password_hash(user.password, request.json['password']):
# the session can't be modified as it's signed,
# it's a safe place to store the user id
session['user_id'] = user.id
resp = jsonify({'status':'authenticated'})
else:
resp = jsonify({'status':'Invalid usernam/password'})
resp.status_code = 401
return resp
当用户第一次登录时,我将他们的用户 ID 存储在会话中,这样当同一个用户请求资源时,数据会为他们量身定制:
@mod.route('/address/')
@requires_login
def user_data():
user = User.query.filter_by(id=session['usr_id']).first
resp = jsonify(user.address)
return resp
如果我在登录后发出此命令:
curl http://localhost:5000/address/
我收到:
{"status": 401, "message": "Unauthorized"}
而不是我登录用户的地址信息。谁能告诉我如何在随后的 curl 调用中使用会话来返回特定于存储在 cookie 中的用户 ID 的数据?