curl -X GET "https://api.chronos.app/auth/google/login" \
-H "Accept: application/json"
{
"redirectUrl": "https://accounts.google.com/o/oauth2/v2/auth?client_id=...&redirect_uri=...&scope=https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/calendar.events&access_type=offline&prompt=consent&code_challenge=..."
}
Initiates the Google OAuth 2.0 authentication flow by generating an authorization URL with calendar scopes.
curl -X GET "https://api.chronos.app/auth/google/login" \
-H "Accept: application/json"
{
"redirectUrl": "https://accounts.google.com/o/oauth2/v2/auth?client_id=...&redirect_uri=...&scope=https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/calendar.events&access_type=offline&prompt=consent&code_challenge=..."
}
{FRONTEND_URL}/auth/web/callback.calendar and calendar.events)access_type=offline to request refresh tokensprompt=consent to force consent screencurl -X GET "https://api.chronos.app/auth/google/login" \
-H "Accept: application/json"
{
"redirectUrl": "https://accounts.google.com/o/oauth2/v2/auth?client_id=...&redirect_uri=...&scope=https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/calendar.events&access_type=offline&prompt=consent&code_challenge=..."
}
redirectTo parameter is not in the configured allow listRATE_LIMIT_AUTH configuration. The rate limiter uses the client’s IP address as the key.
sign_in_with_oauth method with Google providerbackend/app/routers/auth.py:117-141