Pystore
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 git+https://si-devops-gitlab.edf.fr/dih-dpih-sci/data_analytics/Store/pystore.git@v2.0.0
Cette librairie dépends de Flask et Flask-OAuthlib. Si vous n'arrivez pas à l'installer à cause du proxy EDF, installez d'abord les dépendances manuellement depuis internet ou une clé USB puis ré-essayez d'installer pystore depuis le réseau EDF.
pystore va ajouter les urls suivantes à votre application:
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é.
Usage
from flask import Flask, render_template
from pystore import StoreAuth, token_required
# if you need to test this code in a local env (or a demo :P) uncomment these lines
# import os
# os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'
app = Flask(__name__)
# si ce n'est pas déjà fait
app.secret_key = 'UNE CLE ALEATOIRE DE + OU - 20 CARACTERES'
# Créez un objet StoreAuth et passez lui les paramètres suivants:
store_auth = StoreAuth(
app=app,
home_url='https://index-de-votre-app.cih.dpih.fr',
auth_server_url='https://url-du-serveur-oauth.cih.dpih.edf.fr',
client_id='OtfMU5S...UpoW82k',
client_secret='oW5Zegdan9...L2OYdtvKd',
)
@app.route('/')
@token_required
def hello():
return render_template('index.html')