3
,î[ ã @ sD d Z ddlmZmZ ddlmZmZ ddlmZ G dd„ deƒZ d S )
zš
oauthlib.oauth2.rfc6749
~~~~~~~~~~~~~~~~~~~~~~~
This module is an implementation of various logic needed
for consuming and providing OAuth 2.0 RFC6749.
é )Úabsolute_importÚunicode_literalsé )Úparse_token_responseÚprepare_token_requesté )ÚClientc @ s e Zd ZdZddd„ZdS )ÚBackendApplicationClientaž A public client utilizing the client credentials grant workflow.
The client can request an access token using only its client
credentials (or other supported means of authentication) when the
client is requesting access to the protected resources under its
control, or those of another resource owner which has been previously
arranged with the authorization server (the method of which is beyond
the scope of this specification).
The client credentials grant type MUST only be used by confidential
clients.
Since the client authentication is used as the authorization grant,
no additional authorization request is needed.
Ú Nc K s t d||dœ|—ŽS )a³ Add the client credentials to the request body.
The client makes a request to the token endpoint by adding the
following parameters using the "application/x-www-form-urlencoded"
format per `Appendix B`_ in the HTTP request entity-body:
:param scope: The scope of the access request as described by
`Section 3.3`_.
:param kwargs: Extra credentials to include in the token request.
The client MUST authenticate with the authorization server as
described in `Section 3.2.1`_.
The prepared body will include all provided credentials as well as
the ``grant_type`` parameter set to ``client_credentials``::
>>> from oauthlib.oauth2 import BackendApplicationClient
>>> client = BackendApplicationClient('your_id')
>>> client.prepare_request_body(scope=['hello', 'world'])
'grant_type=client_credentials&scope=hello+world'
.. _`Appendix B`: https://tools.ietf.org/html/rfc6749#appendix-B
.. _`Section 3.3`: https://tools.ietf.org/html/rfc6749#section-3.3
.. _`Section 3.2.1`: https://tools.ietf.org/html/rfc6749#section-3.2.1
Úclient_credentials)ÚbodyÚscope)r )r )Úselfr r
Úkwargs© r ú)/usr/lib/python3.6/backend_application.pyÚprepare_request_body! s z-BackendApplicationClient.prepare_request_body)r
N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r r r r r s r N)
r Z
__future__r r Z
parametersr r Úbaser r r r r r Ú