---
title: "Start Google Oauth"
method: GET
path: "/auth/google/start"
tags: ["Google OAuth"]
---

# Start Google Oauth

`GET /auth/google/start`

Initiate Google OAuth flow with PKCE.

Security (Increment 11 + 18):
    - Accepts opaque token instead of user_id (user_id never in URL)
    - Token is single-use (deleted after validation)
    - Token expires after 10 minutes
    - Generates PKCE code_verifier and code_challenge (S256)
    - Stores state + user_id + code_verifier in Redis (10-min TTL)
    - Redirects user to Google consent screen

Args:
    request: FastAPI request object
    token: Opaque connection token (required query parameter)

Returns:
    307 redirect to Google authorization URL, or HTML error page

## Query parameters

- `token` string, required — Opaque connection token from /api/focused/google/initiate-connection

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/priority-guard/apis/priority-guardian.md) · [All operations](https://skmtc.net/priority-guard/apis/priority-guardian/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/priority-guard/priority-guardian/revisions/8579218b716d/schema)
