Authlib 1.9.3__tar.gz → 1.9.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. {authlib-1.9.3 → authlib-1.9.4}/Authlib.egg-info/PKG-INFO +1 -1
  2. {authlib-1.9.3 → authlib-1.9.4}/PKG-INFO +1 -1
  3. {authlib-1.9.3 → authlib-1.9.4}/authlib/consts.py +1 -1
  4. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/drafts/id_jag.py +20 -2
  5. {authlib-1.9.3 → authlib-1.9.4}/Authlib.egg-info/SOURCES.txt +0 -0
  6. {authlib-1.9.3 → authlib-1.9.4}/Authlib.egg-info/dependency_links.txt +0 -0
  7. {authlib-1.9.3 → authlib-1.9.4}/Authlib.egg-info/requires.txt +0 -0
  8. {authlib-1.9.3 → authlib-1.9.4}/Authlib.egg-info/top_level.txt +0 -0
  9. {authlib-1.9.3 → authlib-1.9.4}/LICENSE +0 -0
  10. {authlib-1.9.3 → authlib-1.9.4}/MANIFEST.in +0 -0
  11. {authlib-1.9.3 → authlib-1.9.4}/README.md +0 -0
  12. {authlib-1.9.3 → authlib-1.9.4}/authlib/__init__.py +0 -0
  13. {authlib-1.9.3 → authlib-1.9.4}/authlib/_joserfc_helpers.py +0 -0
  14. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/__init__.py +0 -0
  15. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/encoding.py +0 -0
  16. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/errors.py +0 -0
  17. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/language.py +0 -0
  18. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/security.py +0 -0
  19. {authlib-1.9.3 → authlib-1.9.4}/authlib/common/urls.py +0 -0
  20. {authlib-1.9.3 → authlib-1.9.4}/authlib/deprecate.py +0 -0
  21. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/__init__.py +0 -0
  22. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/__init__.py +0 -0
  23. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/async_app.py +0 -0
  24. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/async_openid.py +0 -0
  25. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/errors.py +0 -0
  26. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/framework_integration.py +0 -0
  27. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/registry.py +0 -0
  28. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/sync_app.py +0 -0
  29. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/base_client/sync_openid.py +0 -0
  30. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_client/__init__.py +0 -0
  31. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_client/apps.py +0 -0
  32. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_client/integration.py +0 -0
  33. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth1/__init__.py +0 -0
  34. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
  35. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth1/nonce.py +0 -0
  36. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
  37. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/__init__.py +0 -0
  38. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
  39. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/endpoints.py +0 -0
  40. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/requests.py +0 -0
  41. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
  42. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/django_oauth2/signals.py +0 -0
  43. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_client/__init__.py +0 -0
  44. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_client/apps.py +0 -0
  45. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_client/integration.py +0 -0
  46. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth1/__init__.py +0 -0
  47. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
  48. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth1/cache.py +0 -0
  49. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
  50. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/__init__.py +0 -0
  51. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
  52. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/errors.py +0 -0
  53. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/requests.py +0 -0
  54. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
  55. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/flask_oauth2/signals.py +0 -0
  56. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/__init__.py +0 -0
  57. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/_compat.py +0 -0
  58. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/assertion_client.py +0 -0
  59. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
  60. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
  61. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/httpx_client/utils.py +0 -0
  62. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/requests_client/__init__.py +0 -0
  63. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/requests_client/assertion_session.py +0 -0
  64. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/requests_client/oauth1_session.py +0 -0
  65. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/requests_client/oauth2_session.py +0 -0
  66. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/requests_client/utils.py +0 -0
  67. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
  68. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
  69. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/sqla_oauth2/functions.py +0 -0
  70. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
  71. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/starlette_client/__init__.py +0 -0
  72. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/starlette_client/apps.py +0 -0
  73. {authlib-1.9.3 → authlib-1.9.4}/authlib/integrations/starlette_client/integration.py +0 -0
  74. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/__init__.py +0 -0
  75. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/drafts/__init__.py +0 -0
  76. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
  77. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
  78. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
  79. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/errors.py +0 -0
  80. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/jwk.py +0 -0
  81. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7515/__init__.py +0 -0
  82. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7515/jws.py +0 -0
  83. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7515/models.py +0 -0
  84. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7516/__init__.py +0 -0
  85. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7516/jwe.py +0 -0
  86. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7516/models.py +0 -0
  87. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/__init__.py +0 -0
  88. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
  89. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
  90. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/base_key.py +0 -0
  91. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/jwk.py +0 -0
  92. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7517/key_set.py +0 -0
  93. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/__init__.py +0 -0
  94. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/ec_key.py +0 -0
  95. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/jwe_algs.py +0 -0
  96. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/jwe_encs.py +0 -0
  97. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/jwe_zips.py +0 -0
  98. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/jws_algs.py +0 -0
  99. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/oct_key.py +0 -0
  100. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/rsa_key.py +0 -0
  101. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7518/util.py +0 -0
  102. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7519/__init__.py +0 -0
  103. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7519/claims.py +0 -0
  104. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc7519/jwt.py +0 -0
  105. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc8037/__init__.py +0 -0
  106. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
  107. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/rfc8037/okp_key.py +0 -0
  108. {authlib-1.9.3 → authlib-1.9.4}/authlib/jose/util.py +0 -0
  109. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/__init__.py +0 -0
  110. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/client.py +0 -0
  111. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/errors.py +0 -0
  112. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/__init__.py +0 -0
  113. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
  114. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/base_server.py +0 -0
  115. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/client_auth.py +0 -0
  116. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/errors.py +0 -0
  117. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/models.py +0 -0
  118. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/parameters.py +0 -0
  119. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
  120. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/rsa.py +0 -0
  121. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/signature.py +0 -0
  122. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/util.py +0 -0
  123. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth1/rfc5849/wrapper.py +0 -0
  124. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/__init__.py +0 -0
  125. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/auth.py +0 -0
  126. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/base.py +0 -0
  127. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/claims.py +0 -0
  128. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/client.py +0 -0
  129. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/drafts/__init__.py +0 -0
  130. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/__init__.py +0 -0
  131. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
  132. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
  133. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/endpoint.py +0 -0
  134. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/errors.py +0 -0
  135. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
  136. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
  137. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/base.py +0 -0
  138. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
  139. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
  140. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
  141. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
  142. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/hooks.py +0 -0
  143. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/models.py +0 -0
  144. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/parameters.py +0 -0
  145. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/requests.py +0 -0
  146. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
  147. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
  148. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/util.py +0 -0
  149. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6749/wrappers.py +0 -0
  150. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6750/__init__.py +0 -0
  151. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6750/errors.py +0 -0
  152. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6750/parameters.py +0 -0
  153. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6750/token.py +0 -0
  154. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc6750/validator.py +0 -0
  155. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7009/__init__.py +0 -0
  156. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7009/parameters.py +0 -0
  157. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7009/revocation.py +0 -0
  158. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7521/__init__.py +0 -0
  159. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7521/client.py +0 -0
  160. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/__init__.py +0 -0
  161. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/assertion.py +0 -0
  162. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/auth.py +0 -0
  163. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/client.py +0 -0
  164. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
  165. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/token.py +0 -0
  166. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7523/validator.py +0 -0
  167. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7591/__init__.py +0 -0
  168. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7591/claims.py +0 -0
  169. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7591/endpoint.py +0 -0
  170. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7591/errors.py +0 -0
  171. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7592/__init__.py +0 -0
  172. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7592/endpoint.py +0 -0
  173. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7636/__init__.py +0 -0
  174. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7636/challenge.py +0 -0
  175. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7662/__init__.py +0 -0
  176. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7662/introspection.py +0 -0
  177. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7662/models.py +0 -0
  178. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc7662/token_validator.py +0 -0
  179. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8414/__init__.py +0 -0
  180. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8414/models.py +0 -0
  181. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8414/well_known.py +0 -0
  182. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8628/__init__.py +0 -0
  183. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8628/device_code.py +0 -0
  184. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8628/endpoint.py +0 -0
  185. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8628/errors.py +0 -0
  186. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8628/models.py +0 -0
  187. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc8693/__init__.py +0 -0
  188. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/__init__.py +0 -0
  189. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/claims.py +0 -0
  190. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/introspection.py +0 -0
  191. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/revocation.py +0 -0
  192. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/token.py +0 -0
  193. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9068/token_validator.py +0 -0
  194. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9101/__init__.py +0 -0
  195. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
  196. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9101/discovery.py +0 -0
  197. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9101/errors.py +0 -0
  198. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9101/registration.py +0 -0
  199. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9207/__init__.py +0 -0
  200. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9207/discovery.py +0 -0
  201. {authlib-1.9.3 → authlib-1.9.4}/authlib/oauth2/rfc9207/parameter.py +0 -0
  202. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/__init__.py +0 -0
  203. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/__init__.py +0 -0
  204. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/authorization_request.py +0 -0
  205. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/claims.py +0 -0
  206. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/errors.py +0 -0
  207. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/__init__.py +0 -0
  208. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/_legacy.py +0 -0
  209. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/code.py +0 -0
  210. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/hybrid.py +0 -0
  211. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/implicit.py +0 -0
  212. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/grants/util.py +0 -0
  213. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/models.py +0 -0
  214. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/userinfo.py +0 -0
  215. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/core/util.py +0 -0
  216. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/discovery/__init__.py +0 -0
  217. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/discovery/models.py +0 -0
  218. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/discovery/well_known.py +0 -0
  219. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/registration/__init__.py +0 -0
  220. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/registration/claims.py +0 -0
  221. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/rpinitiated/__init__.py +0 -0
  222. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/rpinitiated/discovery.py +0 -0
  223. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/rpinitiated/end_session.py +0 -0
  224. {authlib-1.9.3 → authlib-1.9.4}/authlib/oidc/rpinitiated/registration.py +0 -0
  225. {authlib-1.9.3 → authlib-1.9.4}/pyproject.toml +0 -0
  226. {authlib-1.9.3 → authlib-1.9.4}/setup.cfg +0 -0
  227. {authlib-1.9.3 → authlib-1.9.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Authlib
3
- Version: 1.9.3
3
+ Version: 1.9.4
4
4
  Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients.
5
5
  Author-email: Hsiaoming Yang <me@lepture.com>
6
6
  License: BSD-3-Clause
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Authlib
3
- Version: 1.9.3
3
+ Version: 1.9.4
4
4
  Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients.
5
5
  Author-email: Hsiaoming Yang <me@lepture.com>
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  name = "Authlib"
2
- version = "1.9.3"
2
+ version = "1.9.4"
3
3
  author = "Hsiaoming Yang <me@lepture.com>"
4
4
  homepage = "https://authlib.org"
5
5
  default_user_agent = f"{name}/{version} (+{homepage})"
@@ -161,6 +161,7 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
161
161
  raise InvalidRequestError("Missing 'assertion' in request")
162
162
 
163
163
  claims = self._process_assertion_claims(assertion)
164
+ self.request.id_jag_claims = claims
164
165
 
165
166
  client_id_claim = claims["client_id"]
166
167
  if client.get_client_id() != client_id_claim:
@@ -328,7 +329,19 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
328
329
  raise NotImplementedError()
329
330
 
330
331
  def authenticate_user(self, subject):
331
- """Return the user identified by the ``sub`` claim, or *None*."""
332
+ """Return the user identified by the ``sub`` claim, or *None*.
333
+
334
+ Per the ID-JAG draft -06 §3.1, ``sub`` is only unique within its issuer,
335
+ and within its ``tenant`` for a multi-tenant issuer. When the server
336
+ trusts several IdPs, resolve the user with the issuer too (§4.1). The
337
+ verified claims are in ``self.request.id_jag_claims``::
338
+
339
+ def authenticate_user(self, subject):
340
+ issuer = self.request.id_jag_claims["iss"]
341
+ return User.query.filter_by(issuer=issuer, sub=subject).first()
342
+
343
+ :param subject: the ``sub`` claim of the ID-JAG
344
+ """
332
345
  raise NotImplementedError()
333
346
 
334
347
  def check_jti(self, claims, jti) -> bool:
@@ -338,5 +351,10 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
338
351
 
339
352
  def check_id_jag_permission(self, client, user, scopes) -> bool:
340
353
  """Application policy: return *True* if *client* may act on
341
- behalf of *user* for *scopes*."""
354
+ behalf of *user* for *scopes*.
355
+
356
+ The verified claims of the ID-JAG are in
357
+ ``self.request.id_jag_claims``, for a policy that depends on the
358
+ issuer or the tenant.
359
+ """
342
360
  raise NotImplementedError()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes