Source code for pykern.api.auth_api
"""?
:copyright: Copyright (c) 2025 RadiaSoft LLC. All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.api import util
from pykern.pkcollections import PKDict
from pykern.pkdebug import pkdc, pkdlog, pkdp
import pykern.quest
[docs]
class AuthAPI(pykern.quest.API):
#: Defaults version number but allows override
VERSION = util.AUTH_API_VERSION
[docs]
async def api_authenticate_connection(self, api_args):
"""Process AuthRequest from server
api_args:
token (str): secret value evaluated by `AuthAPI`
version (int): protocol version
Args:
api_args (PKDict): what to validate
Returns:
Result: validation result
"""
if (v := api_args.get("version")) != self.VERSION:
raise util.APIProtocolError(f"invalid version={v}, expected={self.VERSION}")
if (t := self.token()) is not None and t != api_args.token:
# Do not log token
raise util.APIForbidden()
return PKDict()
[docs]
def token(self):
return None