Skip to content
No description, website, or topics provided.
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
pystore.py
setup.py

README.md

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')
You can’t perform that action at this time.