medmij_oauth.exceptions module¶
Module for handling OAuth related errors as specified in rfc6749
OAuthException¶
-
exception
medmij_oauth.exceptions.
OAuthException
(error_code, error_description='', redirect=False, base_redirect_url='')[source]¶ OAuthException class, represents a oauth error as described in rfc6749
Parameters: - error_code (
error code
) – Int that represents a type of error - error_description (string) – Human readable description of the error e.g. ‘no such resource’
- redirect (bool) – Indication if on handling of the exception the user should be redirected back to the client application of if the error should be rendered to the screen
- base_redirect_url (string (optional)) – The base of the redirect url (on redirection the error params are appended to the base_redirect_url as a query string)
Usage examples:
raise OAuthException(ERRORS.INVALID_REQUEST, error_description='Invalid redirect url', redirect=False)
raise OAuthException(ERRORS.UNAUTHORIZED_CLIENT, error_description='No such resource', redirect=True, base_redirect_url='https://oauthclient.com')
-
get_dict
()[source]¶ Return dict representation of the exception that is targeted at the end user. Included properties are ‘error’ and ‘error_description’.
-
get_json
()[source]¶ Return json representation of the exception that is targeted at the end user Included properties are ‘error’ and ‘error_description’
{ 'error': 'unauthorized_client', 'error_description': 'no such resource' }
-
get_redirect_url
()[source]¶ Return redirect url to which the end user should be redirected. The redirect_url constists of two parts, self.base_redirect_url and a query string that contains the error and error description
Raises a Exception if self.direct != True or if self.base_redirect_url is not set.
e.g.
https://oauthclient.com/cb/?error=unauthorized_client&error_description=No%20such%20resource
- error_code (
Error codes¶
-
medmij_oauth.exceptions.
lookup_error_code
(error)[source]¶ Lookup error code by text. When an oauth client receives a error response, it can reproduce the exception by looking up the error code with the ‘error’ query param that it received.
Raises a ValueError if the error passed to it is unknown.
Example:
error = query_params.get('error') error_description = query_params.get('error_description') raise OAuthException(error_code=lookup_error_code(error), error_description=error_description)
-
class
medmij_oauth.exceptions.
ERRORS
[source]¶ Error codes enum to be used as error_code for instantiation of OAuthException
Usage example:
raise OAuthException(ERRORS.UNAUTHORIZED_CLIENT, 'no such resource', ...)
-
ACCESS_DENIED
= 2¶
-
INVALID_CLIENT
= 8¶
-
INVALID_GRANT
= 9¶
-
INVALID_REQUEST
= 1¶
-
INVALID_SCOPE
= 5¶
-
SERVER_ERROR
= 6¶
-
TEMPORARILY_UNAVAILABLE
= 7¶
-
UNAUTHORIZED_CLIENT
= 3¶
-
UNSUPPORTED_GRANT_TYPE
= 10¶
-
UNSUPPORTED_RESPONSE_TYPE
= 4¶
-