from flask_restx import Namespace, Resource from .auth import basic_auth, token_auth from .. import db ns = Namespace('tokens', description='Token operations') @ns.route('/') class API_Tokens(Resource): '''Get or revoke a user authentication token''' @ns.doc(security='basicAuth') @basic_auth.login_required def post(self): '''Get a user token''' token = basic_auth.current_user().get_token() db.session.commit() return {'token': 'Bearer ' + token} @ns.doc(security='apiKey') @token_auth.login_required def delete(self): '''Revoke a user token''' token_auth.current_user().revoke_token() db.session.commit() return '', 204