Skip to content

[Bug]: Invalid URL supplied to fauth.sign_in_with_oauth_credential #33

@Lxstr

Description

@Lxstr

Is there an existing issue for this?

  • I have searched the existing issues

Environment

-   OS: Docker Alpine 3.19
-   Python: python3.12

What happened?

I have this bug occur randomly, maybe 20% of the time. Not sure if it could be a requests issue. This also occurs in the live deployment.

http://127.0.0.1:5000/oauth2callback/?state=XXXXXXX&code=XXXXXX&scope=email+openid+https://www.googleapis.com/auth/userinfo.email&authuser=0&hd=XXXXXX.tech&prompt=consent

Code Snippet

def signin_oauth(url):
    user = fauth.sign_in_with_oauth_credential(url)

@auth_bp.route("/oauth2callback/")
def oauth2callback():
    current_app.logger.info(f"Request URL: {request.url}")
    current_app.logger.info("oauth2callback")
    try:
        # Bug also occurs if I use the commented out code below
        # base = BaseConfig.URL if BaseConfig.URL else ""
        # url = urljoin(base, request.url.lstrip("/"))
        # url = f"{BaseConfig.URL.rstrip('/')}" + request.full_path
        auth.signin_oauth(request.url)
    except Exception as e:
        raise

Relevant log output

File "/app/app/auth.py", line 155, in signin_oauth
flaskapp-1  |     user = fauth.sign_in_with_oauth_credential(url)
flaskapp-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/firebase/auth/__init__.py", line 468, in sign_in_with_oauth_credential
flaskapp-1  |     token = self._token_from_auth_url(oauth2callback_url)
flaskapp-1  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/firebase/auth/__init__.py", line 516, in _token_from_auth_url
flaskapp-1  |     request_object = self.requests.post(request_ref, headers=headers, data=data)
flaskapp-1  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 637, in post
flaskapp-1  |     return self.request("POST", url, data=data, json=json, **kwargs)
flaskapp-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 575, in request
flaskapp-1  |     prep = self.prepare_request(req)
flaskapp-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 486, in prepare_request
flaskapp-1  |     p.prepare(
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 368, in prepare
flaskapp-1  |     self.prepare_url(url, params)
flaskapp-1  |   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 439, in prepare_url
flaskapp-1  |     raise MissingSchema(
flaskapp-1  | requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant https://None?

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions