Spaces:
Paused
Paused
| """ | |
| authlib.oauth1.rfc5849.errors | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| RFC5849 has no definition on errors. This module is designed by | |
| Authlib based on OAuth 1.0a `Section 10`_ with some changes. | |
| .. _`Section 10`: https://oauth.net/core/1.0a/#rfc.section.10 | |
| """ | |
| from authlib.common.errors import AuthlibHTTPError | |
| from authlib.common.security import is_secure_transport | |
| class OAuth1Error(AuthlibHTTPError): | |
| def __init__(self, description=None, uri=None, status_code=None): | |
| super().__init__(None, description, uri, status_code) | |
| def get_headers(self): | |
| """Get a list of headers.""" | |
| return [ | |
| ('Content-Type', 'application/x-www-form-urlencoded'), | |
| ('Cache-Control', 'no-store'), | |
| ('Pragma', 'no-cache') | |
| ] | |
| class InsecureTransportError(OAuth1Error): | |
| error = 'insecure_transport' | |
| description = 'OAuth 2 MUST utilize https.' | |
| def check(cls, uri): | |
| if not is_secure_transport(uri): | |
| raise cls() | |
| class InvalidRequestError(OAuth1Error): | |
| error = 'invalid_request' | |
| class UnsupportedParameterError(OAuth1Error): | |
| error = 'unsupported_parameter' | |
| class UnsupportedSignatureMethodError(OAuth1Error): | |
| error = 'unsupported_signature_method' | |
| class MissingRequiredParameterError(OAuth1Error): | |
| error = 'missing_required_parameter' | |
| def __init__(self, key): | |
| description = f'missing "{key}" in parameters' | |
| super().__init__(description=description) | |
| class DuplicatedOAuthProtocolParameterError(OAuth1Error): | |
| error = 'duplicated_oauth_protocol_parameter' | |
| class InvalidClientError(OAuth1Error): | |
| error = 'invalid_client' | |
| status_code = 401 | |
| class InvalidTokenError(OAuth1Error): | |
| error = 'invalid_token' | |
| description = 'Invalid or expired "oauth_token" in parameters' | |
| status_code = 401 | |
| class InvalidSignatureError(OAuth1Error): | |
| error = 'invalid_signature' | |
| status_code = 401 | |
| class InvalidNonceError(OAuth1Error): | |
| error = 'invalid_nonce' | |
| status_code = 401 | |
| class AccessDeniedError(OAuth1Error): | |
| error = 'access_denied' | |
| description = 'The resource owner or authorization server denied the request' | |
| class MethodNotAllowedError(OAuth1Error): | |
| error = 'method_not_allowed' | |
| status_code = 405 | |