Maison > Article > développement back-end > Flask-RESTful et Flask-HTTPAuth : meilleures pratiques pour l'authentification et l'autorisation des utilisateurs dans les applications Web Python
Avec la popularité des applications Web, l'authentification et l'autorisation des utilisateurs sont devenues de plus en plus importantes. Ces fonctionnalités protègent les données sensibles et les fonctionnalités importantes des applications Web afin que seuls les utilisateurs autorisés puissent y accéder. Le langage Python fournit de nombreuses bibliothèques et frameworks qui facilitent la mise en œuvre de l'authentification et de l'autorisation des utilisateurs dans les applications Web. Cet article présentera deux bibliothèques Python : Flask-RESTful et Flask-HTTPAuth, qui sont les meilleures pratiques pour implémenter l'authentification et l'autorisation dans les applications Web.
pip install Flask pip install Flask-RESTful pip install Flask-HTTPAuth
Ensuite, vous devez importer Flask-RESTful et Flask-HTTPAuth dans votre application Flask :
from flask import Flask from flask_restful import Api, Resource from flask_httpauth import HTTPBasicAuth app = Flask(__name__) api = Api(app) auth = HTTPBasicAuth()
Ensuite, vous pouvez créer un utilisateur enregistré. pour la vérification de l'identité :
users = { "john": "hello", "susan": "bye" } @auth.get_password def get_password(username): if username in users: return users.get(username) return None
Un dictionnaire utilisateur simple (nom d'utilisateur et mot de passe) est défini ici et transmis à Flask-HTTPAuth via la fonction de rappel get_password. Dans la fonction get_password, déterminez d'abord si le nom d'utilisateur dans la requête se trouve dans le dictionnaire utilisateur. S'il existe, le mot de passe de l'utilisateur est renvoyé, sinon Aucun n'est renvoyé, indiquant que l'authentification a échoué.
Désormais, Flask-RESTful et Flask-HTTPAuth peuvent être appliqués aux applications pour implémenter l'authentification et l'autorisation des API. Voici un exemple :
class PrivateResource(Resource): @auth.login_required def get(self): return {"message": "Hello, %s!" % auth.username()}, 200 api.add_resource(PrivateResource, '/private')
Dans le code ci-dessus, une ressource protégée PrivateResource est créée, en utilisant le décorateur login_required dans Flask-HTTPAuth pour l'authentification. Si le nom d'utilisateur et le mot de passe dans la requête correspondent, l'appel de la méthode get renvoie un objet JSON contenant le nom d'utilisateur.
Après avoir créé la route, vous pouvez exécuter l'application Flask et vous authentifier à l'aide du nom d'utilisateur et du mot de passe :
$ curl -u john:hello http://localhost:5000/private {"message": "Hello, john!"} $ curl -u susan:bye http://localhost:5000/private {"message": "Hello, susan!"}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!