nopaque/app/api/tokens.py

28 lines
721 B
Python
Raw Normal View History

from app import db
from flask_restx import Namespace, Resource
from .auth import basic_auth, token_auth
2021-09-14 11:01:19 +00:00
ns = Namespace('tokens', description='Token operations')
@ns.route('')
2021-09-14 14:17:26 +00:00
class API_Tokens(Resource):
'''Get or revoke a user authentication token'''
@ns.doc(security='basicAuth')
@basic_auth.login_required
def post(self):
2021-09-14 14:17:26 +00:00
'''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):
2021-09-14 14:17:26 +00:00
'''Revoke a user token'''
token_auth.current_user().revoke_token()
db.session.commit()
return '', 204