Skip to content

fix(auth): allow configuring OAuth prompt parameter#5818

Open
RaghunandanKumar wants to merge 1 commit into
google:mainfrom
RaghunandanKumar:fix/oauth-prompt-configurable
Open

fix(auth): allow configuring OAuth prompt parameter#5818
RaghunandanKumar wants to merge 1 commit into
google:mainfrom
RaghunandanKumar:fix/oauth-prompt-configurable

Conversation

@RaghunandanKumar
Copy link
Copy Markdown

Closes #3046

Summary

AuthHandler.generate_auth_uri() currently hardcodes prompt=consent when building OAuth authorization URLs.

That makes app-level OAuth configuration less flexible than the underlying providers allow. Flows that need prompt=none (or another prompt mode) cannot express that through OAuth2Auth, even though the rest of the OAuth request metadata is already configurable.

This change adds an optional prompt field to OAuth2Auth, preserves consent as the default, and uses the configured value when generating the authorization URL.

Changes

  • src/google/adk/auth/auth_credential.py
    • Add optional prompt field to OAuth2Auth.
  • src/google/adk/auth/auth_handler.py
    • Use auth_credential.oauth2.prompt or "consent" when populating OAuth authorization params.
  • tests/unittests/auth/test_auth_handler.py
    • Extend the OAuth session test double to surface prompt in generated auth URIs.
    • Assert the default OAuth flow still includes prompt=consent.
    • Add coverage for a custom prompt="none" override.

Test plan

  • python3.12 -m py_compile src/google/adk/auth/auth_credential.py src/google/adk/auth/auth_handler.py tests/unittests/auth/test_auth_handler.py
  • PYTHONPATH=src .venv/bin/python -m pytest tests/unittests/auth/test_auth_handler.py -q
    • Blocked locally while bootstrapping a minimal ad hoc venv: importing google.adk for this test path pulls additional runtime dependencies (google.genai, opentelemetry.semconv, and friends). I stopped after confirming the touched files compile cleanly rather than trying to recreate the repo's full uv sync --all-extras environment by hand.
  • Reviewer / CI confirmation that the existing auth handler unit suite passes in the standard repo environment.

AuthHandler always sent prompt=consent when generating OAuth authorization URLs, which blocked silent-auth flows even when the tool configuration needed a different prompt mode.

Add an optional prompt field to OAuth2Auth, preserve consent as the default, and honor custom values such as prompt=none when building the authorization URL. Extend auth handler tests to cover both the default and a custom override.
@google-cla
Copy link
Copy Markdown

google-cla Bot commented May 23, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@adk-bot
Copy link
Copy Markdown
Collaborator

adk-bot commented May 23, 2026

Response from ADK Triaging Agent

Hello @RaghunandanKumar, thank you for creating this PR! We appreciate your contribution to improve the flexibility of OAuth prompt configuration.

To help us review and merge your PR more efficiently, please address the following items from our contribution guidelines:

  1. Sign the Contributor License Agreement (CLA): It looks like the Google CLA check has failed. Please visit the Google CLA page to sign or verify your agreement. This is required before we can accept your contribution.
  2. Verify Unit Tests: Our guidelines require providing a summary of passed pytest results. We noticed you were blocked while setting up the local environment. Please follow the Development Setup instructions in our contribution guidelines (such as installing uv and running uv sync --all-extras) to easily run pytest ./tests/unittests locally.

Thank you!

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.

OAuth Flow prompt Parameter Should Be Configurable

2 participants