Skip to main content

Une librairie d'authentification pour un store d'applications scientifiques.

Project description

Pystore V3.0.*

Pystore est une librairie Flask permettant aux développeurs d'applications scientifiques python + Flask de s'interfacer facilement avec le store d'applications scientifiques du CIH.

Installation

pip install edf-pystore

pystore va ajouter les urls suivantes à votre application, veillez à ce qu'elles ne soient pas déjà définies:

Url Description
/login Redirige l'utilisateur vers cette url si il n'est pas connecté
/logout Déconnecte l'utilisateur connecté et redirige vers /login
/authorize Route interne à pystore, vous n'avez pas besoin de vous en soucier

pystore expose le décorateur @token_required que vous pouvez ajouter au dessus te toutes les routes à sécuriser. Ce décorateur s'occupera de rediriger l'utilisateur vers la page de login si il n'est pas connecté.

Variables d'environment

Pour configurer PyStore, on utilise les variables d'environnement suivantes:

import os

os.environ['PYSTORE_APP_ID']  # L'ID de votre application
os.environ['PYSTORE_CLIENT_ID']  # Le client ID OAuth de votre application
os.environ['PYSTORE_CLIENT_SECRET']  # La clé secrète OAuth de votre application
os.environ['PYSTORE_CLIENT_URL']  # La base url de votre application (pour Google par exemple, c'est http://google.com)
os.environ['PYSTORE_SERVER_URL']  # La base url du serveur d'authentification (par exemple: https://authentication.recette.cih.dpih.edf.fr)
os.environ['PYSTORE_STORE_URL']  # La base url du store (par exemple: https://hydrostore.recette.cih.dpih.edf.fr)

Si vous ne voulez pas déclarer de variables d'environnement à chaque fois que vous lancez votre application en local, créez un fichier .env à la racine de votre projet. PyStore ira lire les valeurs qu'il contient:

PYSTORE_APP_ID=123
PYSTORE_CLIENT_ID=123456789
PYSTORE_CLIENT_SECRET=987654321
PYSTORE_CLIENT_URL=https://monapp.recette.cih.dpih.edf.fr
PYSTORE_SERVER_URL=https://authentication.recette.cih.dpih.edf.fr
PYSTORE_STORE_URL=https://hydrostore.recette.cih.dpih.edf.fr

Usage

from flask import Flask, render_template
from pystore import StoreAuth, token_required

# Pour tester en local (car pas de https en local)
# import os
# os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'

app = Flask(__name__)

# si ce n'est pas déjà fait, créez une secret_key
app.secret_key = 'UNE CLE ALEATOIRE DE + OU - 20 CARACTERES'

# Créez un objet StoreAuth et passez-lui l'instance de votre application
store_auth = StoreAuth(app)

@app.route('/')
@token_required
def hello():
    return render_template('index.html')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for edf-pystore, version 4.0.0
Filename, size File type Python version Upload date Hashes
Filename, size edf-pystore-4.0.0.tar.gz (4.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page