diff options
author | Jesusaves <cpntb1@ymail.com> | 2023-03-05 22:42:39 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2023-03-05 22:42:39 -0300 |
commit | 972344a32ba39e8f2733b5937935145a4611a27d (patch) | |
tree | 389399e1bb93aea9a96c3d764d849a180394a28a /game/python-extra/requests_oauthlib/oauth2_auth.py | |
parent | dadf8ed045e5761317416dcc7d4805e788945fb7 (diff) | |
download | renpy-972344a32ba39e8f2733b5937935145a4611a27d.tar.gz renpy-972344a32ba39e8f2733b5937935145a4611a27d.tar.bz2 renpy-972344a32ba39e8f2733b5937935145a4611a27d.tar.xz renpy-972344a32ba39e8f2733b5937935145a4611a27d.zip |
Import mwlib... On python3 builds only
Diffstat (limited to 'game/python-extra/requests_oauthlib/oauth2_auth.py')
-rw-r--r-- | game/python-extra/requests_oauthlib/oauth2_auth.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/game/python-extra/requests_oauthlib/oauth2_auth.py b/game/python-extra/requests_oauthlib/oauth2_auth.py new file mode 100644 index 0000000..b880f72 --- /dev/null +++ b/game/python-extra/requests_oauthlib/oauth2_auth.py @@ -0,0 +1,37 @@ +from __future__ import unicode_literals +from oauthlib.oauth2 import WebApplicationClient, InsecureTransportError +from oauthlib.oauth2 import is_secure_transport +from requests.auth import AuthBase + + +class OAuth2(AuthBase): + """Adds proof of authorization (OAuth2 token) to the request.""" + + def __init__(self, client_id=None, client=None, token=None): + """Construct a new OAuth 2 authorization object. + + :param client_id: Client id obtained during registration + :param client: :class:`oauthlib.oauth2.Client` to be used. Default is + WebApplicationClient which is useful for any + hosted application but not mobile or desktop. + :param token: Token dictionary, must include access_token + and token_type. + """ + self._client = client or WebApplicationClient(client_id, token=token) + if token: + for k, v in token.items(): + setattr(self._client, k, v) + + def __call__(self, r): + """Append an OAuth 2 token to the request. + + Note that currently HTTPS is required for all requests. There may be + a token type that allows for plain HTTP in the future and then this + should be updated to allow plain HTTP on a white list basis. + """ + if not is_secure_transport(r.url): + raise InsecureTransportError() + r.url, r.headers, r.body = self._client.add_token( + r.url, http_method=r.method, body=r.body, headers=r.headers + ) + return r |