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

Flask-RESTful et Flask-HTTPAuth : meilleures pratiques pour l'authentification et l'autorisation des utilisateurs dans les applications Web Python

WBOY
WBOYoriginal
2023-06-17 17:12:541738parcourir

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.

  1. Qu'est-ce que Flask-RESTful ?
    Flask-RESTful est une bibliothèque RESTful basée sur le framework Flask, qui peut facilement créer des API RESTful. Il est construit sur Flask, Werkzeug et Jinja2, fournissant un cadre RESTful léger et un système de routage simple qui fonctionne parfaitement avec Flask, permettant aux développeurs de créer rapidement des API RESTful.
  2. Qu'est-ce que Flask-HTTPAuth ?
    Flask-HTTPAuth est une bibliothèque qui fournit l'authentification et l'autorisation des utilisateurs pour les applications Web Flask. Elle peut s'authentifier via l'authentification de base HTTP, des cookies, des jetons ou d'autres méthodes personnalisées. Flask-HTTPAuth ne nécessite aucune base de données supplémentaire et stocke les informations d'authentification des utilisateurs dans le fichier de configuration de l'application. Cela rend le processus d’authentification beaucoup plus simple et pratique.
  3. Utilisation de Flask-RESTful et Flask-HTTPAuth pour implémenter l'authentification et l'autorisation
    Avant d'utiliser Flask-RESTful et Flask-HTTPAuth pour implémenter l'authentification et l'autorisation, certains paramètres doivent être définis dans l'application. Tout d'abord, vous devez installer les bibliothèques Flask, Flask-RESTful et Flask-HTTPAuth :
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!"}
  1. Résumé
    Dans cet article, nous avons expliqué comment implémenter les bibliothèques Flask-RESTful et Flask-HTTPAuth dans une application Web Python. Authentification et autorisation. En configurant la bibliothèque Python et en utilisant les exemples de code ci-dessus, vous pouvez protéger les données sensibles et les fonctionnalités importantes de votre application Web, en garantissant que seuls les utilisateurs autorisés y ont accès. Python est un langage puissant, facile à apprendre et à utiliser, très populaire dans des domaines tels que la science des données et le développement de programmes Web. Son écosystème est également très riche, fournissant de nombreuses bibliothèques et frameworks pour rendre le développement plus facile et plus rapide.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn