nopaque/app/api/tokens.py

28 lines
721 B
Python

from app import db
from flask_restx import Namespace, Resource
from .auth import basic_auth, token_auth
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