ログインしたユーザーを追跡するためにセッションを使用する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に固有のデータを返す方法を誰か教えてもらえますか?