Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add credentials: include and Cookie header to prevent 401 error #8600

Merged
merged 3 commits into from
Jun 24, 2024
Merged

Add credentials: include and Cookie header to prevent 401 error #8600

merged 3 commits into from
Jun 24, 2024

Conversation

yinkiu602
Copy link
Contributor

Description

When connecting to a gradio app with authentication using JS client, there will be 401 error when interacting with the API.

When running it locally with the JS client:
image

When running it on browser (Chrome) by including it via CDN (as mentioned in the documentation) with the following code:
image
It shows 401 error with message "Not authenticated".
image
image
Which by looking an the request headers, the credential cookies are not being sent as part of the request:
image

This PR propose the change to add the required headers (credentials: "include" & Cookie) when Client.stream() is being called.
Headers and Credentials are both being added as running the code files in terminal with credentials: "include" only will also result in 401 error. While running it in browser with Cookie header only will also result in 401, Adding both headers will give the best compatibility when using the client on different platform.

Reproduction

import { Client } from "@gradio/client";

const client = await Client.connect("yinkiu602/testsetsetsets", {auth: ["admin", "pass1234"]});
const result = await client.predict("/chat", { 		
    message: "Hello!!", 		
    system_message: "Hello!!", 		
    max_tokens: 1, 		
    temperature: 0.1, 		
    top_p: 0.1,
})

console.log(result.data);

It should fail with 401 error. By changing the stream function, it should work normally.

🎯 PRs Should Target Issues

Before your create a PR, please check to see if there is an existing issue for this change. If not, please create an issue before you create this PR, unless the fix is very small.

Not adhering to this guideline will result in the PR being closed.

Tests

  1. PRs will only be merged if tests pass on CI. To run the tests locally, please set up your Gradio environment locally and run the tests: bash scripts/run_all_tests.sh

  2. You may need to run the linters: bash scripts/format_backend.sh and bash scripts/format_frontend.sh

@gradio-pr-bot
Copy link
Collaborator

gradio-pr-bot commented Jun 24, 2024

🪼 branch checks and previews

Name Status URL
Spaces ready! Spaces preview
Website ready! Website preview
🦄 Changes detecting...

Install Gradio from this PR

pip install https://gradio-builds.s3.amazonaws.com/941549e08a0bfebc027c4fb0ee681de2bdebf2c8/gradio-4.36.1-py3-none-any.whl

Install Gradio Python Client from this PR

pip install "gradio-client @ git+https://github.com/gradio-app/gradio@941549e08a0bfebc027c4fb0ee681de2bdebf2c8#subdirectory=client/python"

Install Gradio JS Client from this PR

npm install https://gradio-builds.s3.amazonaws.com/941549e08a0bfebc027c4fb0ee681de2bdebf2c8/gradio-client-1.1.1.tgz

@hannahblair
Copy link
Collaborator

hannahblair commented Jun 24, 2024

Looks good to me! Thanks @yinkiu602. Note, I'd like to know if @pngwn is happy with this since he's more familiar with the stream logic

edit: got the ok from @pngwn

@gradio-pr-bot
Copy link
Collaborator

gradio-pr-bot commented Jun 24, 2024

🦄 change detected

This Pull Request includes changes to the following packages.

Package Version
@gradio/client minor
gradio minor
  • Maintainers can select this checkbox to manually select packages to update.

With the following changelog entry.

Add credentials: include and Cookie header to prevent 401 error

Maintainers or the PR author can modify the PR title to modify this entry.

Something isn't right?

  • Maintainers can change the version label to modify the version bump.
  • If the bot has failed to detect any changes, or if this pull request needs to update multiple packages to different versions or requires a more comprehensive changelog entry, maintainers can update the changelog file directly.

@hannahblair hannahblair merged commit 7289c4b into gradio-app:main Jun 24, 2024
7 checks passed
This was referenced Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants