
    k7i                          " S  S5      r g)c                   r    \ rS rSrSrSrSSSSS.r  SS jrS r\	S	 5       r
    SS
 jr    SS jrSrg)BearerTokenGenerator   a  Bearer token generator which can create the payload for token response
by OAuth 2 server. A typical token response would be:

.. code-block:: http

    HTTP/1.1 200 OK
    Content-Type: application/json;charset=UTF-8
    Cache-Control: no-store
    Pragma: no-cache

    {
        "access_token":"mF_9.B5f-4.1JqM",
        "token_type":"Bearer",
        "expires_in":3600,
        "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
    }
i  i / )authorization_codeimplicitpasswordclient_credentialsNc                 (    Xl         X l        X0l        g N)access_token_generatorrefresh_token_generatorexpires_generator)selfr   r   r   s       V/home/james-whalen/.local/lib/python3.13/site-packages/authlib/oauth2/rfc6750/token.py__init__BearerTokenGenerator.__init__   s     '=#'>$!2    c                 :   U R                   c'  U R                  R                  X R                  5      nU$ [	        U R                   5      (       a  U R                  X5      nU$ [        U R                   [        5      (       a  U R                   nU$ U R                  nU$ r
   )r   GRANT_TYPES_EXPIRES_INgetDEFAULT_EXPIRES_INcallable
isinstanceint)r   client
grant_type
expires_ins       r   _get_expires_in$BearerTokenGenerator._get_expires_in(   s    !!)448833J  d,,--//CJ
 	 ..44//J  00Jr   c                 6    U(       a  U R                  U5      nU$ r
   )get_allowed_scope)r   scopes     r   r    &BearerTokenGenerator.get_allowed_scope5   s    ,,U3Er   c                     U R                  X$5      nU R                  X!X4S9nUc  U R                  X!5      nSUS.nU(       a  XXS'   U(       a$  U R                  (       a  U R                  X!X4S9US'   U(       a  XHS'   U$ )a  Generate a bearer token for OAuth 2.0 authorization token endpoint.

:param client: the client that making the request.
:param grant_type: current requested grant_type.
:param user: current authorized user.
:param expires_in: if provided, use this value as expires_in.
:param scope: current requested scope.
:param include_refresh_token: should refresh_token be included.
:return: Token dict
)r   r   userr!   Bearer)
token_typeaccess_tokenr   refresh_tokenr!   )r    r   r   r   )	r   r   r   r$   r!   r   include_refresh_tokenr'   tokens	            r   generateBearerTokenGenerator.generate;   s    & &&v522t 3 
 --fAJ #(
 ",, T%A%A%)%A%A4 &B &E/" "'Nr   c                 (    U R                  XX4XV5      $ r
   )r+   )r   r   r   r$   r!   r   r)   s          r   __call__BearerTokenGenerator.__call__c   s     }}Z
 	
r   )r   r   r   )NN)NNNT)__name__
__module____qualname____firstlineno____doc__r   r   r   r   staticmethodr    r+   r.   __static_attributes__ r   r   r   r      sr    &  %$	 !%	3   "&X "
r   r   N)r   r7   r   r   <module>r8      s   m
 m
r   