ScoDoc/app/api/tokens.py

27 lines
735 B
Python
Raw Normal View History

from flask_json import as_json
2022-05-03 08:55:56 +02:00
from app import db, log
from app.api import api_bp as bp
from app.auth.logic import basic_auth, token_auth
2021-09-09 12:49:23 +02:00
@bp.route("/tokens", methods=["POST"])
@basic_auth.login_required
@as_json
2021-09-09 12:49:23 +02:00
def get_token():
2022-05-03 13:35:17 +02:00
"renvoie un jeton jwt pour l'utilisateur courant"
2021-09-09 12:49:23 +02:00
token = basic_auth.current_user().get_token()
2022-05-03 08:55:56 +02:00
log(f"API: giving token to {basic_auth.current_user()}")
2021-09-09 12:49:23 +02:00
db.session.commit()
return {"token": token}
2021-09-09 12:49:23 +02:00
@bp.route("/tokens", methods=["DELETE"])
@token_auth.login_required
def revoke_token():
2022-05-03 13:35:17 +02:00
"révoque le jeton de l'utilisateur courant"
2023-03-09 14:24:12 +01:00
user = token_auth.current_user()
user.revoke_token()
2021-09-09 12:49:23 +02:00
db.session.commit()
2023-03-09 14:24:12 +01:00
log(f"API: revoking token for {user}")
2021-09-09 12:49:23 +02:00
return "", 204