examples/openapi3/basicauth/app.py
#!/usr/bin/env python3
'''
Basic example of a resource server
'''
import connexion
from connexion.decorators.security import validate_scope
from connexion.exceptions import OAuthScopeProblem
def basic_auth(username, password, required_scopes=None):
if username == 'admin' and password == 'secret':
info = {'sub': 'admin', 'scope': 'secret'}
elif username == 'foo' and password == 'bar':
info = {'sub': 'user1', 'scope': ''}
else:
# optional: raise exception for custom error response
return None
# optional
if required_scopes is not None and not validate_scope(required_scopes, info['scope']):
raise OAuthScopeProblem(
description='Provided user doesn\'t have the required access rights',
required_scopes=required_scopes,
token_scopes=info['scope']
)
return info
def get_secret(user) -> str:
return "You are {user} and the secret is 'wbevuec'".format(user=user)
if __name__ == '__main__':
app = connexion.FlaskApp(__name__)
app.add_api('openapi.yaml')
app.run(port=8080)