Skip to content

CAS ?

Si on fait des souscriptions par utilisateurs, deux choix sont possibles:

  • Il faut pouvoir les identifier pour pouvoir se souvenir de leurs préférences, pour ne pas leurs envoyer les notifications;
  • Il faut pouvoir dropper les notifs inutiles côté client, dans le worker;

Dans le premier cas, on peut se baser sur le CAS, avec un snippet en dessous basé sur flask_cas:

from flask import Flask
from flask_cas import CAS,login_required

app = Flask(__name__, static_url_path='')
cas = CAS(app)
app.config['CAS_SERVER'] = 'https://cas.ens-lyon.fr'
app.config['CAS_AFTER_LOGIN'] = 'main'

@app.route('/',  methods=['GET', 'POST'])
@login_required
def main():
    if (cas.username):
         return "Hello " + cas.username
    else:
         return "Identification needed!"


app.secret_key = 'super_secret'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='8081')

Ce n'est qu'un exemple, et dans l'idéal, si cette solution est choisie, il faudrait utiliser du flask-security avec un frontend de ce type.