edf-pystore

Un connecteur python pour authentifier et autoriser des utilisateurs sur les applications de l'HydroStore.


License
Other
Install
pip install edf-pystore==4.0.9

Documentation

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')