Created
September 14, 2022 08:32
-
-
Save adamchainz/81b5f8e2ae1ed3a3584987338381af52 to your computer and use it in GitHub Desktop.
authlib 1.0.1 to 1.1.0 wheel diff
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/LICENSE b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/LICENSE | |
similarity index 100% | |
rename from /Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/LICENSE | |
rename to /Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/LICENSE | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/METADATA b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/METADATA | |
similarity index 99% | |
rename from /Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/METADATA | |
rename to /Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/METADATA | |
index da8bbee..58ce39e 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/METADATA | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/METADATA | |
@@ -1,6 +1,6 @@ | |
Metadata-Version: 2.1 | |
Name: Authlib | |
-Version: 1.0.1 | |
+Version: 1.1.0 | |
Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients. | |
Home-page: https://authlib.org/ | |
Author: Hsiaoming Yang | |
@@ -103,5 +103,3 @@ If this license does not fit your company, consider to purchase a commercial | |
license. Find more information on `Authlib Plans`_. | |
.. _`Authlib Plans`: https://authlib.org/plans | |
- | |
- | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/RECORD b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/RECORD | |
similarity index 88% | |
rename from /Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/RECORD | |
rename to /Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/RECORD | |
index b93c7fa..64942d4 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/RECORD | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/RECORD | |
@@ -1,5 +1,5 @@ | |
authlib/__init__.py,sha256=CoObQJQX-YGSJy-HWbJPtK6XbpfKDBc21DJwjhLnIcM,476 | |
-authlib/consts.py,sha256=YQLy9j4z8t-AnSP1pYv_jv1o38nXGh4ccLTRqN70nos,312 | |
+authlib/consts.py,sha256=0JPkzOuqjcVOLYuVgm1g_EoOEmyAc8uHOIlfb-Yvmtk,312 | |
authlib/deprecate.py,sha256=GkYSPN_Tsx6FvPf1I8lWg8MtFjq2la66UlyuRAJHZX0,499 | |
authlib/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 | |
authlib/common/encoding.py,sha256=sdiaZwuXZI-ruNPGAhJ0oIuZTcrzdawneS_PoJAnHYk,1546 | |
@@ -18,7 +18,7 @@ authlib/integrations/base_client/registry.py,sha256=EzMUFGpe0rShZIksp42Tx7kShayE | |
authlib/integrations/base_client/sync_app.py,sha256=KnDYipBKoxMoYg6904jjPFsdK5U2htK3EdTEZzzhW1U,12403 | |
authlib/integrations/base_client/sync_openid.py,sha256=DeksbFb44QIIGXjyiMYSjnqUCB0tVn04l487V5LBdGk,2729 | |
authlib/integrations/django_client/__init__.py,sha256=ff_Kol2-pT-7E0zav2A6tkgqMT1YYLpmVuNaKh-Fz5g,458 | |
-authlib/integrations/django_client/apps.py,sha256=kR0zxvrRaRvIzNE_yrbJylYBuiFlZV1QqK08vL_EDa4,3251 | |
+authlib/integrations/django_client/apps.py,sha256=88Eqsn5jy-amyCZLcfb8kd6PF2ITHXJUOBK63oX4p2I,3342 | |
authlib/integrations/django_client/integration.py,sha256=TfgtYs2X_IwismSdX8TI73EcpoYCfjS9OovOdEP8XLA,650 | |
authlib/integrations/django_oauth1/__init__.py,sha256=yp66WLC43YdsICGgVDbu6AfIRyPR17M43umIUcxjH10,221 | |
authlib/integrations/django_oauth1/authorization_server.py,sha256=UAfP61s-OW0MkVVdq2ld-jjksdPVL5ui_j10sLq3N14,4446 | |
@@ -30,7 +30,7 @@ authlib/integrations/django_oauth2/endpoints.py,sha256=lKkDmQklHNTCXK_L-6-_PrHa6 | |
authlib/integrations/django_oauth2/resource_protector.py,sha256=bzB9V0_QrgMa5jt8mldiSmRhGjWGQmCB6mTUDPJ0XU8,2518 | |
authlib/integrations/django_oauth2/signals.py,sha256=8SlnOsi1IuBPmrCi7dOLXK70N_m9y6B3msjMCtBMnSk,236 | |
authlib/integrations/flask_client/__init__.py,sha256=Fh6JNvM5bF8msOvkbEfH3m1CXwfHF3ImQ3Tq1cci7J0,1699 | |
-authlib/integrations/flask_client/apps.py,sha256=Zu0DbkpL2AdZgSIAem53K8ZfO3b1t66htJ2uKWtjobk,3651 | |
+authlib/integrations/flask_client/apps.py,sha256=9x45-ENBiM9RRJoQ0EJahEARGo78xInCAh7E-Cc4FtU,3742 | |
authlib/integrations/flask_client/integration.py,sha256=5zvw8EmcoHW3xiXel9gKSaH5YwGSGAE_ipCdEPjKPFk,815 | |
authlib/integrations/flask_oauth1/__init__.py,sha256=PGDVdNJ9oGs5bYJr7oGdpQX0tE2nQJNcHJ8t-SxEAEY,260 | |
authlib/integrations/flask_oauth1/authorization_server.py,sha256=2FB54nMUXBGIlOLHcB_zEc5tLPvUc8p0QoQi0iBHwYY,6320 | |
@@ -42,23 +42,23 @@ authlib/integrations/flask_oauth2/errors.py,sha256=mqpfJ_iTi0yJZCT_sl6sSDScQ4BRo | |
authlib/integrations/flask_oauth2/resource_protector.py,sha256=K4tZIeo9PyUDIdXZBFdhwx5Nzd9DFP8i1gJrZpCxUsY,4002 | |
authlib/integrations/flask_oauth2/signals.py,sha256=CKao8F778CkUzl7mKjF96smr7WKJ0nfxBT0onVFq10Y,341 | |
authlib/integrations/httpx_client/__init__.py,sha256=zuO_FIAdLEJ9Ch25kTa-Nsyi2gqkPuAsXdHAeYc0nBI,804 | |
-authlib/integrations/httpx_client/assertion_client.py,sha256=lll2OEfhg9Ifva5B16PekjxFo4hSODdA_7XhaDURQ_o,3357 | |
-authlib/integrations/httpx_client/oauth1_client.py,sha256=xAWAFJh6Em4SefZ6x7zg9qT-2zljnWsXyXhs4Ih3mog,4048 | |
-authlib/integrations/httpx_client/oauth2_client.py,sha256=lmwC3QvTasuGR8f0Al02flkpu2ZuI5QH6VJoMrp4dvA,8545 | |
+authlib/integrations/httpx_client/assertion_client.py,sha256=fh4-H61Z4heiGRsgE8OBxBERjNb2QDO-FRyN3CkgL8o,3325 | |
+authlib/integrations/httpx_client/oauth1_client.py,sha256=2_VuHKzHEArUWdYQF_9FQiVc7VompBPYRBepzBDHJkE,4068 | |
+authlib/integrations/httpx_client/oauth2_client.py,sha256=KJUzNG8nxk6sbcMA5ug7CBy_Ft6E1NJHaIxBncvfFno,8585 | |
authlib/integrations/httpx_client/utils.py,sha256=XF8d4xz4d7tDoaaq3LQ3GZonED1_EtW8zH_FoTcUPL4,888 | |
authlib/integrations/requests_client/__init__.py,sha256=Nco-Q1_wOswQ9qCgBgh0rVWPYO9ddEKnlnnJ9rGZE_U,652 | |
authlib/integrations/requests_client/assertion_session.py,sha256=skU8zaAXiVScexTJ3eaM7GjUNMvmzbRhFXaWTfJAz78,1689 | |
authlib/integrations/requests_client/oauth1_session.py,sha256=Yw-OOh9WknaCADB5HxqoIRUin33iuCcK-_YJRnuZODo,2233 | |
-authlib/integrations/requests_client/oauth2_session.py,sha256=V7Fs3AgUOVkKEDtNaI64Md9nxz7QnMq_esMqG6hK3CU,4289 | |
+authlib/integrations/requests_client/oauth2_session.py,sha256=hRweMynF38Msp8ayHdomV9voAdQxgReqCDQ06QvxWJ0,4370 | |
authlib/integrations/requests_client/utils.py,sha256=4ohGF-9JUR9Ayw63glEednsZSbscrSD4Rx0BPkPrSeA,274 | |
authlib/integrations/sqla_oauth2/__init__.py,sha256=d8g3ipiiPtyk1JnmTDzeAKCdm-ozjNoERDWLEkpBgL8,548 | |
authlib/integrations/sqla_oauth2/client_mixin.py,sha256=O5VYZnV1AZjmPp8WKGYHuWSAnHPQ5qU9qJIK3miEMlo,4094 | |
authlib/integrations/sqla_oauth2/functions.py,sha256=8HDJ9C7X27rfAhJJ-tHW4C_CJ1rjX5JPfeS5cZiHoYY,3339 | |
authlib/integrations/sqla_oauth2/tokens_mixins.py,sha256=9cBNIUxKLsaP8DTkOKlkZQ1m5guxeOnpJ9t-K8Kuy0c,2008 | |
authlib/integrations/starlette_client/__init__.py,sha256=-MrPR0hE8B7k9vxFOos74QG6g8cLYpSEmVwU1qAeiCw,677 | |
-authlib/integrations/starlette_client/apps.py,sha256=FT6GIshGRkRKs_B95Jyy6CUeGHASpww4VZQT8plMACA,3234 | |
-authlib/integrations/starlette_client/integration.py,sha256=hJ7eJVTYxt3eNk8W7dvqPmBNKM0zJkhCabOg-39W0hw,1962 | |
-authlib/jose/__init__.py,sha256=tTm334D2vphWM9H1vO_f_9ZV3MQrt4K1D86OHgCxuKo,1350 | |
+authlib/integrations/starlette_client/apps.py,sha256=Cbk_SiNLIr5RM_rIuNn3jdd2zYKTADO6jhOgb73484I,3328 | |
+authlib/integrations/starlette_client/integration.py,sha256=LKR4HdZl1PVTqrCQsDMPBtq39_RQxmpBTqiZn_9Duxs,1974 | |
+authlib/jose/__init__.py,sha256=qpIwbdODthy50cit_FeHECvwRGd7pIABiYEA4aiFV48,1399 | |
authlib/jose/errors.py,sha256=HeX2ezB4dS5qdlIHro9liIoHbhS2IAo4huQMZickcIc,3224 | |
authlib/jose/jwk.py,sha256=ifeKlnLs6XA56y_BxXG8dt76_6RoNjrvcLvQY9PkMHg,388 | |
authlib/jose/util.py,sha256=2krDZtJunNHXHMSi85A30pceMUhW_wI9l9kX2VDpdkM,1097 | |
@@ -67,10 +67,10 @@ authlib/jose/drafts/_jwe_algorithms.py,sha256=8PFO2kbRsRM8IUP3gfPUtvXPddoMFLSfeU | |
authlib/jose/drafts/_jwe_enc_cryptodome.py,sha256=a4Vb0AUZWZWlCoTKqOfBaLZ-o1D1bgS0hKuBKJT7Kqo,1860 | |
authlib/jose/drafts/_jwe_enc_cryptography.py,sha256=N2Bm9zp7MMSe_kbPwjyUAyD3MMOTj5BmpEUc1k_IqUw,1743 | |
authlib/jose/rfc7515/__init__.py,sha256=0NhWGkry69LiJH6cAkwIUNmQUpuGh463TNwIpoQjtE4,360 | |
-authlib/jose/rfc7515/jws.py,sha256=9lJ326BsAKyV-WhJPp1SMx6iy4oCNYK1CgIqyrh6AcI,11254 | |
+authlib/jose/rfc7515/jws.py,sha256=v6NJcLciOVZ_BbCyCijGwgCij9f4JPV_Osw8US_tmaM,11282 | |
authlib/jose/rfc7515/models.py,sha256=JPUPg7pHW-_aztpfX517y6SWBZI5_AfrNxUxwUhrilM,2483 | |
authlib/jose/rfc7516/__init__.py,sha256=SCAxvSIWD0NF2_Gcq1BrIkKx3Bqr_6WYhFpDFt3AQ6A,465 | |
-authlib/jose/rfc7516/jwe.py,sha256=gj4FmhCTmMCJF28x5aRgXXBvZQyRJmsSzkZCEf8aI2g,29670 | |
+authlib/jose/rfc7516/jwe.py,sha256=cvqhOpwx0SFD_eKYlyIbSQu8cU2gzww_ibPPpSDvYuA,29722 | |
authlib/jose/rfc7516/models.py,sha256=1xLEfSEb_OyL1J4pmLOGGs5dOtsdJI5BZcyHoxPPAG8,4401 | |
authlib/jose/rfc7517/__init__.py,sha256=LfowmYyTdC0t5wB6ptJs45Qkj-6nRmHmhRONAh-UFxY,424 | |
authlib/jose/rfc7517/_cryptography_key.py,sha256=1-EQ1YD7ZR7Gp7FBntrWEN-76Su_vlunuzC77VPJ_sg,1257 | |
@@ -89,7 +89,7 @@ authlib/jose/rfc7518/rsa_key.py,sha256=hxCJAs-Ljl_RRv6D5ezAhQCpjwYhp2OU3zXtCqfO_ | |
authlib/jose/rfc7518/util.py,sha256=LpOgX10QHuqss6x015QPgApTlnYJ_cQyd0hzeYALnaE,265 | |
authlib/jose/rfc7519/__init__.py,sha256=CORkKBZ135xSAR-wQJob9P5EfdmyRkJ58MM6EOGvCAE,333 | |
authlib/jose/rfc7519/claims.py,sha256=JeGQu3PK3y62psFmTPIKzYdwITjYGU8XlcUssloVnxw,8423 | |
-authlib/jose/rfc7519/jwt.py,sha256=1eGM98bxLHjsaporey2j2ujPOdodpLK_f8eAjmJFeq8,5740 | |
+authlib/jose/rfc7519/jwt.py,sha256=c3jjVyFjEKC3rb97cV5o-V8vdJhZWvFB_zZYD_7EJZI,5735 | |
authlib/jose/rfc8037/__init__.py,sha256=MV25hs0RY6HU0pE5UKB2hmRI0Avv-V8BaPtNxIshh0A,119 | |
authlib/jose/rfc8037/jws_eddsa.py,sha256=dpg6ZKOdpqGcp582mP5yqsRLlnC81y_Mnl3xL0_tgLQ,716 | |
authlib/jose/rfc8037/okp_key.py,sha256=3JzYo1_uUEsngtx8nsRCQqjwSEmBhb_KUaflq0sVsR8,3568 | |
@@ -111,19 +111,19 @@ authlib/oauth1/rfc5849/wrapper.py,sha256=VdmE-XTIXLLF1aweeqeLBHSIsNLwkfplmiU7WyH | |
authlib/oauth2/__init__.py,sha256=QbT0eXEAwNUr9RbRGRHIw6kw-pUnFXbfcbZJZ5_ynmc,423 | |
authlib/oauth2/auth.py,sha256=pL2FQ3go6R8l54pFPSL5KMdXzJc6wigR84iNqYMvu7Y,3473 | |
authlib/oauth2/base.py,sha256=jizTGyMIx5lVS3R-kIJolYh0lZRo4MfldC9aTBk-v54,1009 | |
-authlib/oauth2/client.py,sha256=jtXdPjBRZnox95iGd0kVnOum_8zOvEz00jgqmfmsjCg,17315 | |
+authlib/oauth2/client.py,sha256=o27iAv4x8ikfvM5P2HQDQwqdea6gCN9MQeNYNveKyG0,17382 | |
authlib/oauth2/rfc6749/__init__.py,sha256=KcyW3CtI9Ocw0U5Opjmf_8gXrJPB5G0IqZ0ngTRca1E,2322 | |
authlib/oauth2/rfc6749/authenticate_client.py,sha256=xRQDiVXJSj-gqtsMEhBNhJtVYxMKJyfB1dfsokv9tro,3756 | |
-authlib/oauth2/rfc6749/authorization_server.py,sha256=xWQv-8Pg1dBnBhxu_IIbBQCramjqZXP8mfYCipnkoe8,11419 | |
+authlib/oauth2/rfc6749/authorization_server.py,sha256=9GHN3x2Z2fNfoTR3d0PZWr38mXL0U0nnOgPBsBo7iB4,11425 | |
authlib/oauth2/rfc6749/errors.py,sha256=zzJhjlUvaygoFVvew9A3UujKc-3q99HBWCBfWV_Sjaw,7540 | |
authlib/oauth2/rfc6749/models.py,sha256=7m_LfEYzI_iAvLibVUoKR4XbdAnTNt9A6s0-eWP4Jy0,7527 | |
-authlib/oauth2/rfc6749/parameters.py,sha256=YCDcu9BammKPLEM5cOoZ0fwF2pTl9lpYYMC97ZUwxQM,8270 | |
+authlib/oauth2/rfc6749/parameters.py,sha256=kP4R8OFQRuNOdrTW1SGYP9tx1t8yzfYxr2agZL7-JL8,8296 | |
authlib/oauth2/rfc6749/resource_protector.py,sha256=qF_tYZH9qAdVAHYl7q1TgrzDHmZIv1nkk8kdvgHFtP0,5305 | |
authlib/oauth2/rfc6749/token_endpoint.py,sha256=AjrHbGkenvLPzHrcFCGqrJA2rK7dtYTYmNErTZxGTY0,1111 | |
authlib/oauth2/rfc6749/util.py,sha256=xzebTUJciyJ9qy1jrYqiXfNBq6GfqCkb9Ok0XMoPWFc,1122 | |
authlib/oauth2/rfc6749/wrappers.py,sha256=UUs6JXokaIpGv4AUA7JpIMXHIou08moAt4qWPo3wJKQ,2864 | |
authlib/oauth2/rfc6749/grants/__init__.py,sha256=jJZOtFgyBztuIGQxcuK1qtvnR3hWRDU-G59RuyWmqKI,1314 | |
-authlib/oauth2/rfc6749/grants/authorization_code.py,sha256=2NMrpvJ1PrBM-ybjizyeP1FMUcZ1_0qvACGS6PZgtlM,15335 | |
+authlib/oauth2/rfc6749/grants/authorization_code.py,sha256=ohDFsAWwlsjYYkXkMWz9eed4tLMOKRaeNjlMmrppbY8,15352 | |
authlib/oauth2/rfc6749/grants/base.py,sha256=VeyHcWsHFxBQMSDe79bWl5txYfu-cZmtObFACcrWKAY,5054 | |
authlib/oauth2/rfc6749/grants/client_credentials.py,sha256=pf3tfaiSVeuCudaqZGKpFU1OVBWkSOTB8SErEjJQWvY,3924 | |
authlib/oauth2/rfc6749/grants/implicit.py,sha256=qNBYKp8GG3sNLZSfC1VL6xRiloTXDl3c1qPXsGf3XF8,9297 | |
@@ -138,7 +138,7 @@ authlib/oauth2/rfc7009/__init__.py,sha256=P0aYdtZ-B5Nj8mUkEqS-snMvJ8hLTDR5unZKAZ | |
authlib/oauth2/rfc7009/parameters.py,sha256=klTaHudte5Oncfw6M5Mr6LL9Y-cVnN29Th1ix-uVYAU,854 | |
authlib/oauth2/rfc7009/revocation.py,sha256=OOW6beRAnGCCeQ3frQdzdiO7paHHrTF_oPyO1ga3S5M,3942 | |
authlib/oauth2/rfc7521/__init__.py,sha256=sI-EfGOAZTLM-LxfBfYEXU_74cd3ib63g8fkGu39PJA,67 | |
-authlib/oauth2/rfc7521/client.py,sha256=6zwwlR8ZzEnYSejJnDiShJU9l4S_qPzipOba9h6A2Jg,2513 | |
+authlib/oauth2/rfc7521/client.py,sha256=1PrWuGraLfzCVL0cpZLnvVFdfcHUT2hkE6-dbrraiCs,2481 | |
authlib/oauth2/rfc7523/__init__.py,sha256=RRj26fRGj1KUc7ojMKcWQvCJtKhSxOGcz7I6PZOGULU,876 | |
authlib/oauth2/rfc7523/assertion.py,sha256=ZFklvOm9ulLdUCoWn245igaK4LjXsFIJn5GcWJRl7iU,2024 | |
authlib/oauth2/rfc7523/auth.py,sha256=V7tVFzcxMV4JEoA9gRbdgpIufPcyORhZMy0v0DjfJiA,3071 | |
@@ -181,8 +181,8 @@ authlib/oidc/core/grants/util.py,sha256=0Zmyd_ofSrzAyJYf7dxtuQ7wcx2shkha4aDIIIeo | |
authlib/oidc/discovery/__init__.py,sha256=sI40mT-HXoRPqxAE5UfPg-r3xa_wrQZ8jIuN5n5nm70,321 | |
authlib/oidc/discovery/models.py,sha256=dcb7fprftGNQtlDKOBUxTf3fVtDj8CpmocBM1PjtRBc,12611 | |
authlib/oidc/discovery/well_known.py,sha256=3VmfTsVReChVVxBuN1eoL7fIRHL0-tN0aXH2XVKeiDM,574 | |
-Authlib-1.0.1.dist-info/LICENSE,sha256=jhtIUY3pxs0Ay0jH_luAI_2Q1VUsoS6-c2Kg3zDdvkU,1514 | |
-Authlib-1.0.1.dist-info/METADATA,sha256=FR7josUyNb-jGTgD4TNA9u9malHm3jQcsxdtST4hO28,3724 | |
-Authlib-1.0.1.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110 | |
-Authlib-1.0.1.dist-info/top_level.txt,sha256=Rj3mJn0jhRuCs6x7ysI6hYE2PePbuxey6y6jswadAEY,8 | |
-Authlib-1.0.1.dist-info/RECORD,, | |
+Authlib-1.1.0.dist-info/LICENSE,sha256=jhtIUY3pxs0Ay0jH_luAI_2Q1VUsoS6-c2Kg3zDdvkU,1514 | |
+Authlib-1.1.0.dist-info/METADATA,sha256=izBKb9owdKftdDdehQRdApeA5dWbZR6JGhKEPbduZCk,3722 | |
+Authlib-1.1.0.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110 | |
+Authlib-1.1.0.dist-info/top_level.txt,sha256=Rj3mJn0jhRuCs6x7ysI6hYE2PePbuxey6y6jswadAEY,8 | |
+Authlib-1.1.0.dist-info/RECORD,, | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/WHEEL b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/WHEEL | |
similarity index 100% | |
rename from /Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/WHEEL | |
rename to /Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/WHEEL | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/top_level.txt b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/top_level.txt | |
similarity index 100% | |
rename from /Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/Authlib-1.0.1.dist-info/top_level.txt | |
rename to /Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/Authlib-1.1.0.dist-info/top_level.txt | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/consts.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/consts.py | |
index 2a69e55..d72f6a8 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/consts.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/consts.py | |
@@ -1,5 +1,5 @@ | |
name = 'Authlib' | |
-version = '1.0.1' | |
+version = '1.1.0' | |
author = 'Hsiaoming Yang <[email protected]>' | |
homepage = 'https://authlib.org/' | |
default_user_agent = '{}/{} (+{})'.format(name, version, homepage) | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/django_client/apps.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/django_client/apps.py | |
index 4e23e8c..dbf3a22 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/django_client/apps.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/django_client/apps.py | |
@@ -75,12 +75,13 @@ class DjangoOAuth2App(DjangoAppMixin, OAuth2Mixin, OpenIDMixin, BaseApp): | |
'state': request.POST.get('state'), | |
} | |
+ claims_options = kwargs.pop('claims_options', None) | |
state_data = self.framework.get_state_data(request.session, params.get('state')) | |
self.framework.clear_state_data(request.session, params.get('state')) | |
params = self._format_state_params(state_data, params) | |
token = self.fetch_access_token(**params, **kwargs) | |
if 'id_token' in token and 'nonce' in state_data: | |
- userinfo = self.parse_id_token(token, nonce=state_data['nonce']) | |
+ userinfo = self.parse_id_token(token, nonce=state_data['nonce'], claims_options=claims_options) | |
token['userinfo'] = userinfo | |
return token | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/flask_client/apps.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/flask_client/apps.py | |
index 89a5893..4235203 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/flask_client/apps.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/flask_client/apps.py | |
@@ -97,6 +97,7 @@ class FlaskOAuth2App(FlaskAppMixin, OAuth2Mixin, OpenIDMixin, BaseApp): | |
'state': request.form.get('state'), | |
} | |
+ claims_options = kwargs.pop('claims_options', None) | |
state_data = self.framework.get_state_data(session, params.get('state')) | |
self.framework.clear_state_data(session, params.get('state')) | |
params = self._format_state_params(state_data, params) | |
@@ -104,6 +105,6 @@ class FlaskOAuth2App(FlaskAppMixin, OAuth2Mixin, OpenIDMixin, BaseApp): | |
self.token = token | |
if 'id_token' in token and 'nonce' in state_data: | |
- userinfo = self.parse_id_token(token, nonce=state_data['nonce']) | |
+ userinfo = self.parse_id_token(token, nonce=state_data['nonce'], claims_options=claims_options) | |
token['userinfo'] = userinfo | |
return token | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/assertion_client.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/assertion_client.py | |
index dd5baf7..4832850 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/assertion_client.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/assertion_client.py | |
@@ -43,7 +43,6 @@ class AsyncAssertionClient(_AssertionClient, AsyncClient): | |
resp = await self.request( | |
'POST', self.token_endpoint, data=data, withhold_token=True) | |
- resp.raise_for_status() | |
token = resp.json() | |
if 'error' in token: | |
raise OAuth2Error( | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/oauth1_client.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/oauth1_client.py | |
index 7f248cb..c123686 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/oauth1_client.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/oauth1_client.py | |
@@ -7,7 +7,7 @@ from authlib.oauth1 import ( | |
from authlib.common.encoding import to_unicode | |
from authlib.oauth1 import ClientAuth | |
from authlib.oauth1.client import OAuth1Client as _OAuth1Client | |
-from .utils import extract_client_kwargs | |
+from .utils import build_request, extract_client_kwargs | |
from ..base_client import OAuthError | |
@@ -19,7 +19,7 @@ class OAuth1Auth(Auth, ClientAuth): | |
url, headers, body = self.prepare( | |
request.method, str(request.url), request.headers, request.content) | |
headers['Content-Length'] = str(len(body)) | |
- yield Request(method=request.method, url=url, headers=headers, content=body) | |
+ yield build_request(url=url, headers=headers, body=body, initial_request=request) | |
class AsyncOAuth1Client(_OAuth1Client, AsyncClient): | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/oauth2_client.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/oauth2_client.py | |
index 932aaf6..9a44167 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/httpx_client/oauth2_client.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/httpx_client/oauth2_client.py | |
@@ -1,4 +1,5 @@ | |
import typing | |
+from contextlib import asynccontextmanager | |
from httpx import AsyncClient, Auth, Client, Request, Response, USE_CLIENT_DEFAULT | |
from anyio import Lock # Import after httpx so import errors refer to httpx | |
@@ -91,6 +92,7 @@ class AsyncOAuth2Client(_OAuth2Client, AsyncClient): | |
return await super(AsyncOAuth2Client, self).request( | |
method, url, auth=auth, **kwargs) | |
+ @asynccontextmanager | |
async def stream(self, method, url, withhold_token=False, auth=USE_CLIENT_DEFAULT, **kwargs): | |
if not withhold_token and auth is USE_CLIENT_DEFAULT: | |
if not self.token: | |
@@ -100,8 +102,9 @@ class AsyncOAuth2Client(_OAuth2Client, AsyncClient): | |
auth = self.token_auth | |
- return super(AsyncOAuth2Client, self).stream( | |
- method, url, auth=auth, **kwargs) | |
+ async with super(AsyncOAuth2Client, self).stream( | |
+ method, url, auth=auth, **kwargs) as resp: | |
+ yield resp | |
async def ensure_active_token(self, token): | |
async with self._token_refresh_lock: | |
@@ -134,7 +137,6 @@ class AsyncOAuth2Client(_OAuth2Client, AsyncClient): | |
for hook in self.compliance_hook['access_token_response']: | |
resp = hook(resp) | |
- resp.raise_for_status() | |
return self.parse_response_token(resp.json()) | |
async def _refresh_token(self, url, refresh_token=None, body='', | |
@@ -146,7 +148,6 @@ class AsyncOAuth2Client(_OAuth2Client, AsyncClient): | |
for hook in self.compliance_hook['refresh_token_response']: | |
resp = hook(resp) | |
- resp.raise_for_status() | |
token = self.parse_response_token(resp.json()) | |
if 'refresh_token' not in token: | |
self.token['refresh_token'] = refresh_token | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/requests_client/oauth2_session.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/requests_client/oauth2_session.py | |
index c4b13c0..620c39e 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/requests_client/oauth2_session.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/requests_client/oauth2_session.py | |
@@ -56,6 +56,7 @@ class OAuth2Session(OAuth2Client, Session): | |
:param revocation_endpoint_auth_method: client authentication method for | |
revocation endpoint. | |
:param scope: Scope that you needed to access user resources. | |
+ :param state: Shared secret to prevent CSRF attack. | |
:param redirect_uri: Redirect URI you registered as callback. | |
:param token: A dict of token attributes such as ``access_token``, | |
``token_type`` and ``expires_at``. | |
@@ -74,7 +75,7 @@ class OAuth2Session(OAuth2Client, Session): | |
def __init__(self, client_id=None, client_secret=None, | |
token_endpoint_auth_method=None, | |
revocation_endpoint_auth_method=None, | |
- scope=None, redirect_uri=None, | |
+ scope=None, state=None, redirect_uri=None, | |
token=None, token_placement='header', | |
update_token=None, **kwargs): | |
@@ -86,7 +87,7 @@ class OAuth2Session(OAuth2Client, Session): | |
client_id=client_id, client_secret=client_secret, | |
token_endpoint_auth_method=token_endpoint_auth_method, | |
revocation_endpoint_auth_method=revocation_endpoint_auth_method, | |
- scope=scope, redirect_uri=redirect_uri, | |
+ scope=scope, state=state, redirect_uri=redirect_uri, | |
token=token, token_placement=token_placement, | |
update_token=update_token, **kwargs | |
) | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/starlette_client/apps.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/starlette_client/apps.py | |
index 5b0f435..f41454f 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/starlette_client/apps.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/starlette_client/apps.py | |
@@ -21,7 +21,7 @@ class StarletteAppMixin(object): | |
async def authorize_redirect(self, request, redirect_uri=None, **kwargs): | |
"""Create a HTTP Redirect for Authorization Endpoint. | |
- :param request: HTTP request instance from Django view. | |
+ :param request: HTTP request instance from Starlette view. | |
:param redirect_uri: Callback or redirect URI for authorization. | |
:param kwargs: Extra parameters to include. | |
:return: A HTTP redirect response. | |
@@ -69,12 +69,13 @@ class StarletteOAuth2App(StarletteAppMixin, AsyncOAuth2Mixin, AsyncOpenIDMixin, | |
else: | |
session = request.session | |
+ claims_options = kwargs.pop('claims_options', None) | |
state_data = await self.framework.get_state_data(session, params.get('state')) | |
await self.framework.clear_state_data(session, params.get('state')) | |
params = self._format_state_params(state_data, params) | |
token = await self.fetch_access_token(**params, **kwargs) | |
if 'id_token' in token and 'nonce' in state_data: | |
- userinfo = await self.parse_id_token(token, nonce=state_data['nonce']) | |
+ userinfo = await self.parse_id_token(token, nonce=state_data['nonce'], claims_options=claims_options) | |
token['userinfo'] = userinfo | |
return token | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/starlette_client/integration.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/starlette_client/integration.py | |
index 22c1db1..afe789b 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/integrations/starlette_client/integration.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/integrations/starlette_client/integration.py | |
@@ -36,7 +36,7 @@ class StarletteIntegration(FrameworkIntegration): | |
async def set_state_data(self, session: Optional[Dict[str, Any]], state: str, data: Any): | |
key = f'_state_{self.name}_{state}' | |
if self.cache: | |
- await self.cache.set(key, {'data': data}, self.expires_in) | |
+ await self.cache.set(key, json.dumps({'data': data}), self.expires_in) | |
elif session is not None: | |
now = time.time() | |
session[key] = {'data': data, 'exp': now + self.expires_in} | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/__init__.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/__init__.py | |
index 1d096fe..2d6638a 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/__init__.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/__init__.py | |
@@ -42,7 +42,7 @@ JsonWebKey.JWK_KEY_CLS = { | |
OKPKey.kty: OKPKey, | |
} | |
-jwt = JsonWebToken() | |
+jwt = JsonWebToken(list(JsonWebSignature.ALGORITHMS_REGISTRY.keys())) | |
__all__ = [ | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7515/jws.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7515/jws.py | |
index 1248c95..faaa740 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7515/jws.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7515/jws.py | |
@@ -244,7 +244,7 @@ class JsonWebSignature(object): | |
raise MissingAlgorithmError() | |
alg = header['alg'] | |
- if self._algorithms and alg not in self._algorithms: | |
+ if self._algorithms is not None and alg not in self._algorithms: | |
raise UnsupportedAlgorithmError() | |
if alg not in self.ALGORITHMS_REGISTRY: | |
raise UnsupportedAlgorithmError() | |
@@ -252,7 +252,7 @@ class JsonWebSignature(object): | |
algorithm = self.ALGORITHMS_REGISTRY[alg] | |
if callable(key): | |
key = key(header, payload) | |
- elif 'jwk' in header: | |
+ elif key is None and 'jwk' in header: | |
key = header['jwk'] | |
key = algorithm.prepare_key(key) | |
return algorithm, key | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7516/jwe.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7516/jwe.py | |
index 0de8ea4..f5e82f4 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7516/jwe.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7516/jwe.py | |
@@ -662,7 +662,7 @@ class JsonWebEncryption(object): | |
raise MissingAlgorithmError() | |
alg = header['alg'] | |
- if self._algorithms and alg not in self._algorithms: | |
+ if self._algorithms is not None and alg not in self._algorithms: | |
raise UnsupportedAlgorithmError() | |
if alg not in self.ALG_REGISTRY: | |
raise UnsupportedAlgorithmError() | |
@@ -672,7 +672,7 @@ class JsonWebEncryption(object): | |
if 'enc' not in header: | |
raise MissingEncryptionAlgorithmError() | |
enc = header['enc'] | |
- if self._algorithms and enc not in self._algorithms: | |
+ if self._algorithms is not None and enc not in self._algorithms: | |
raise UnsupportedEncryptionAlgorithmError() | |
if enc not in self.ENC_REGISTRY: | |
raise UnsupportedEncryptionAlgorithmError() | |
@@ -681,7 +681,7 @@ class JsonWebEncryption(object): | |
def get_header_zip(self, header): | |
if 'zip' in header: | |
z = header['zip'] | |
- if self._algorithms and z not in self._algorithms: | |
+ if self._algorithms is not None and z not in self._algorithms: | |
raise UnsupportedCompressionAlgorithmError() | |
if z not in self.ZIP_REGISTRY: | |
raise UnsupportedCompressionAlgorithmError() | |
@@ -717,6 +717,6 @@ class JsonWebEncryption(object): | |
def prepare_key(alg, header, key): | |
if callable(key): | |
key = key(header, None) | |
- elif 'jwk' in header: | |
+ elif key is None and 'jwk' in header: | |
key = header['jwk'] | |
return alg.prepare_key(key) | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7519/jwt.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7519/jwt.py | |
index 1866c4e..58a6f7c 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/jose/rfc7519/jwt.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/jose/rfc7519/jwt.py | |
@@ -25,7 +25,7 @@ class JsonWebToken(object): | |
r'^\b(?!(000|666|9))\d{3}-(?!00)\d{2}-(?!0000)\d{4}\b', | |
]), re.DOTALL) | |
- def __init__(self, algorithms=None, private_headers=None): | |
+ def __init__(self, algorithms, private_headers=None): | |
self._jws = JsonWebSignature(algorithms, private_headers=private_headers) | |
self._jwe = JsonWebEncryption(algorithms, private_headers=private_headers) | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/client.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/client.py | |
index cf2cc8a..35032d1 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/client.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/client.py | |
@@ -28,6 +28,7 @@ class OAuth2Client(object): | |
:param revocation_endpoint_auth_method: client authentication method for | |
revocation endpoint. | |
:param scope: Scope that you needed to access user resources. | |
+ :param state: Shared secret to prevent CSRF attack. | |
:param redirect_uri: Redirect URI you registered as callback. | |
:param code_challenge_method: PKCE method name, only S256 is supported. | |
:param token: A dict of token attributes such as ``access_token``, | |
@@ -48,12 +49,13 @@ class OAuth2Client(object): | |
def __init__(self, session, client_id=None, client_secret=None, | |
token_endpoint_auth_method=None, | |
revocation_endpoint_auth_method=None, | |
- scope=None, redirect_uri=None, code_challenge_method=None, | |
+ scope=None, state=None, redirect_uri=None, code_challenge_method=None, | |
token=None, token_placement='header', update_token=None, **metadata): | |
self.session = session | |
self.client_id = client_id | |
self.client_secret = client_secret | |
+ self.state = state | |
if token_endpoint_auth_method is None: | |
if client_secret: | |
@@ -170,6 +172,7 @@ class OAuth2Client(object): | |
:param grant_type: Use specified grant_type to fetch token | |
:return: A :class:`OAuth2Token` object (a dict too). | |
""" | |
+ state = state or self.state | |
# implicit grant_type | |
authorization_response = kwargs.pop('authorization_response', None) | |
if authorization_response and '#' in authorization_response: | |
@@ -350,7 +353,6 @@ class OAuth2Client(object): | |
for hook in self.compliance_hook['access_token_response']: | |
resp = hook(resp) | |
- resp.raise_for_status() | |
return self.parse_response_token(resp.json()) | |
def _refresh_token(self, url, refresh_token=None, body='', headers=None, | |
@@ -360,7 +362,6 @@ class OAuth2Client(object): | |
for hook in self.compliance_hook['refresh_token_response']: | |
resp = hook(resp) | |
- resp.raise_for_status() | |
token = self.parse_response_token(resp.json()) | |
if 'refresh_token' not in token: | |
self.token['refresh_token'] = refresh_token | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/authorization_server.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/authorization_server.py | |
index c0e8d7e..1de93bb 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/authorization_server.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/authorization_server.py | |
@@ -60,7 +60,7 @@ class AuthorizationServer(object): | |
def register_token_generator(self, grant_type, func): | |
"""Register a function as token generator for the given ``grant_type``. | |
Developers MUST register a default token generator with a special | |
- ``grant_type=none``:: | |
+ ``grant_type=default``:: | |
def generate_bearer_token(grant_type, client, user=None, scope=None, | |
expires_in=None, include_refresh_token=True): | |
@@ -70,7 +70,7 @@ class AuthorizationServer(object): | |
... | |
return token | |
- authorization_server.register_token_generator('none', generate_bearer_token) | |
+ authorization_server.register_token_generator('default', generate_bearer_token) | |
If you register a generator for a certain grant type, that generator will only works | |
for the given grant type:: | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/grants/authorization_code.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/grants/authorization_code.py | |
index 570ebf2..436588f 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/grants/authorization_code.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/grants/authorization_code.py | |
@@ -6,6 +6,7 @@ from ..errors import ( | |
OAuth2Error, | |
UnauthorizedClientError, | |
InvalidClientError, | |
+ InvalidGrantError, | |
InvalidRequestError, | |
AccessDeniedError, | |
) | |
@@ -220,14 +221,14 @@ class AuthorizationCodeGrant(BaseGrant, AuthorizationEndpointMixin, TokenEndpoin | |
# code was issued to "client_id" in the request | |
authorization_code = self.query_authorization_code(code, client) | |
if not authorization_code: | |
- raise InvalidRequestError('Invalid "code" in request.') | |
+ raise InvalidGrantError('Invalid "code" in request.') | |
# validate redirect_uri parameter | |
log.debug('Validate token redirect_uri of %r', client) | |
redirect_uri = self.request.redirect_uri | |
original_redirect_uri = authorization_code.get_redirect_uri() | |
if original_redirect_uri and redirect_uri != original_redirect_uri: | |
- raise InvalidRequestError('Invalid "redirect_uri" in request.') | |
+ raise InvalidGrantError('Invalid "redirect_uri" in request.') | |
# save for create_token_response | |
self.request.client = client | |
@@ -267,7 +268,7 @@ class AuthorizationCodeGrant(BaseGrant, AuthorizationEndpointMixin, TokenEndpoin | |
user = self.authenticate_user(authorization_code) | |
if not user: | |
- raise InvalidRequestError('There is no "user" for this code.') | |
+ raise InvalidGrantError('There is no "user" for this code.') | |
self.request.user = user | |
scope = authorization_code.get_scope() | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/parameters.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/parameters.py | |
index 20461fd..4ffdb1d 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc6749/parameters.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc6749/parameters.py | |
@@ -151,7 +151,8 @@ def parse_authorization_code_response(uri, state=None): | |
if 'code' not in params: | |
raise MissingCodeException() | |
- if state and params.get('state', None) != state: | |
+ params_state = params.get('state') | |
+ if state and params_state != state: | |
raise MismatchingStateException() | |
return params | |
diff --git a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc7521/client.py b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc7521/client.py | |
index 4c5e5d6..d1b98ba 100644 | |
--- a/Users/chainz/Downloads/Authlib-1.0.1-py2.py3-none-any/authlib/oauth2/rfc7521/client.py | |
+++ b/Users/chainz/Downloads/Authlib-1.1.0-py2.py3-none-any/authlib/oauth2/rfc7521/client.py | |
@@ -73,7 +73,6 @@ class AssertionClient(object): | |
resp = self.session.request( | |
'POST', self.token_endpoint, data=data, withhold_token=True) | |
- resp.raise_for_status() | |
token = resp.json() | |
if 'error' in token: | |
raise OAuth2Error( |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment