From 9b2119f2979026163fc09a0212cdc6426644c0f6 Mon Sep 17 00:00:00 2001 From: Freddy Boulton Date: Fri, 17 Feb 2023 18:01:42 -0500 Subject: [PATCH] Fix auth when connecting via HTTP (#3223) * Fix + test * Remove print statements + fix import for 3.7 * CHANGELOG * Remove more print statements * Add 60 second timeout for uploading data * Fix test * Add unsecure token * Undo diff * Add CHANGELOG * Fix on main * remove __gradio_loader__ --------- Co-authored-by: Abubakar Abid --- CHANGELOG.md | 1 + gradio/routes.py | 7 ++++++- ui/globals.d.ts | 3 --- ui/packages/app/src/Login.svelte | 1 - 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddc9f984af608..7b218b454c49e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,6 +72,7 @@ By [@dawoodkhan82](https://github.com/dawoodkhan82) in [PR 3165](https://github. * The `change` event is now triggered when users click the 'Clear All' button of the multiselect DropDown component by [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3195](https://github.com/gradio-app/gradio/pull/3195) * Support Chinese pinyin in Dataframe by [@aliabid94](https://github.com/aliabid94) in [PR 3206](https://github.com/gradio-app/gradio/pull/3206) * The `clear` event is now triggered when images are cleared by [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3218](https://github.com/gradio-app/gradio/pull/3218) +* Fix bug where auth cookies where not sent when connecting to an app via http by [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3223](https://github.com/gradio-app/gradio/pull/3223) ## Documentation Changes: * Sort components in docs by alphabetic order by [@aliabd](https://github.com/aliabd) in [PR 3152](https://github.com/gradio-app/gradio/pull/3152) diff --git a/gradio/routes.py b/gradio/routes.py index 1570e1e4b815b..5d3fe1ad85801 100644 --- a/gradio/routes.py +++ b/gradio/routes.py @@ -148,7 +148,9 @@ def create_app(blocks: gradio.Blocks) -> App: @app.get("/user") @app.get("/user/") def get_current_user(request: fastapi.Request) -> Optional[str]: - token = request.cookies.get("access-token") + token = request.cookies.get("access-token") or request.cookies.get( + "access-token-unsecure" + ) return app.tokens.get(token) @app.get("/login_check") @@ -196,6 +198,9 @@ def login(form_data: OAuth2PasswordRequestForm = Depends()): samesite="none", secure=True, ) + response.set_cookie( + key="access-token-unsecure", value=token, httponly=True + ) return response else: raise HTTPException(status_code=400, detail="Incorrect credentials.") diff --git a/ui/globals.d.ts b/ui/globals.d.ts index 8cedc75d3c201..91528f02ba6d9 100644 --- a/ui/globals.d.ts +++ b/ui/globals.d.ts @@ -5,9 +5,6 @@ declare global { launchGradioFromSpaces: Function; gradio_config: Config; scoped_css_attach: (link: HTMLLinkElement) => void; - __gradio_loader__: Array<{ - $set: (args: any) => any; - }>; __is_colab__: boolean; } } diff --git a/ui/packages/app/src/Login.svelte b/ui/packages/app/src/Login.svelte index 03067e23c9b82..a09a1374922ed 100644 --- a/ui/packages/app/src/Login.svelte +++ b/ui/packages/app/src/Login.svelte @@ -8,7 +8,6 @@ export let app_mode: boolean; export let is_space: boolean; - window.__gradio_loader__[id].$set({ status: "complete" }); let username = ""; let password = ""; let incorrect_credentials = false;