2017-10-13 2 views
1

Je joue avec Flask. J'aime que c'est assez mince et fonctionne pour la plupart de mes exigences.Flask helper méthode pour trouver l'utilisateur de l'en-tête

Je voudrais savoir quelle est votre méthode recommandée pour récupérer l'utilisateur actuellement connecté. Je voudrais chaque demande HTTP, ce qui est fait, de passer/porter un jeton dans l'en-tête, qui est d'abord récupéré par le connexion api

/user/login (params: username, password) 
# returns {success: True, token: "<some-unique-string>" 

est maintenant les API suivantes que je voudrais obtenir l'objet utilisateur du jeton de passé, comme si

@app.route("/user/info", methods = ["GET"]) 
@apify 
def user_get_info(): 
    return {"name": current_user().name} 

Comment pourrais-je avoir current_user lire l'en-tête sans avoir à passer la demande objet à chaque fois?

Des pensées?

Répondre

0

Chaque jeton est stocké contre un utilisateur. Vous pouvez donc faire une requête pour obtenir un utilisateur contre un jeton donné. Quelque chose comme:

token = Token.query.get(token='token_value') 
return jsonify({'name: User.query.get(id=token.user_id).name}) 

Ceci peut être fait en une ligne aussi bien mais cela dépend totalement de vos modèles et relations.

Espérons que ça aide. Si je n'ai pas bien compris votre question, élaborez un peu.