Skip to content
Snippets Groups Projects
Select Git revision
  • bcf20d4c5835990c06cb87e6e7e4e9140ad5e7b0
  • master default
  • clement
  • fix_requirements
  • new_signup
  • interface_admin
  • hamza
  • dev
  • test
  • melissa
  • context_sheet
  • sorties_new
  • Seon82-patch-2
  • export_bdd
  • refactor/participation-user-link
15 results

Procfile

Blame
  • README.md 4.59 KiB

    Site internet d'OSER - Backend

    Python Django Documentation Status Build Status

    Bienvenue ! Ce dépôt est le lieu de développement du backend du site internet de l'association OSER, site qui a pour objectif de soutenir l'association dans son action quotidienne.

    Si vous venez d'arriver, vous trouverez ci-dessous les ressources pour bien démarrer. :thumbsup:

    Happy coding !

    Table des matières

    Documentation

    La documentation complète du backend est disponible dans la documentation technique hébergée sur ReadTheDocs. Toutes les instructions d'installation y sont notamment recensées.

    Documentation de l'API

    En supplément, la documentation de l'API est accessible à la racine du serveur Django. Sur le serveur local, vous pouvez donc y accéder à l'URL http://localhost:8000/. Vous pouvez aussi librement parcourir l'API à l'adresse http://localhost:8000/api/.

    API Docs

    Authentification

    Pour communiquer avec l'API, un client doit être authentifié. La méthode standard de la token authentication est employée ici.

    Le principe est le suivant :

    • Le client s'authentifie en utilisant un nom d'utilisateur et un mot de passe.
    • Le backend génère un token et le renvoie au client.
    • Le client peut alors utiliser le token pour réaliser d'autres requêtes qui nécessitent d'être authentifié.

    Quel intérêt par rapport à une authentification username/password basique ?

    L'avantage est de pouvoir stocker ce token dans un cookie ou dans le stockage local du navigateur, et ainsi éviter de redemander le nom d'utilisateur/mot de passe à chaque réouverture du navigateur.

    Concrètement, comment faire pour authentifier un utilisateur ?

    Du point de vue d'un client, la procédure d'authentification se fait en 2 étapes :

    A. Récupération du token en envoyant une requête POST à l'endpoint /api/auth/get-token avec le username et le password fournis par l'utilisateur.

    $ curl -X POST -d "username=user&password=pass" localhost:8000/api/auth/get-token/
    {"token":"b6302cebe7817532987e7a8767611b2600414915"}

    B. Usage du token lors de futures requêtes en envoyant le paramètre Authorization: Token <token> dans l'entête.

    $ curl -X GET "localhost:8000/api/articles/" -H "Authorization: Token b6302cebe7817532987e7a8767611b2600414915"
    [{"id": 39, "content": ...}, ...]

    Dépendances

    Django

    Django est un framework de développement web pour Python. Le site d'OSER utilise Django en version 2.0.

    Note aux devs : il y a quelques changements non-rétrocompatibles de Django 2.0 par rapport à la version précédente 1.11. Faites attention à vérifier la version de Django supportée par des bibliothèques tierces que vous voudriez utiliser.

    Django REST Framework