# OAuth - Privy docs Source: https://docs.privy.io/authentication/user-authentication/login-methods/oauth ## Summary This is developer documentation for Privy's OAuth login support rather than news. Privy natively supports OAuth login with Google, Apple, Twitter, Discord, GitHub, LinkedIn, Spotify, TikTok, Instagram, Telegram, and LINE, and providers must be enabled in the Privy Dashboard before implementation. For whitelabel implementations, the useLoginWithOAuth hook's initOAuth function triggers the flow, and the page notes that Google OAuth may not work in in-app browsers. It also describes zero-click authentication for users opening an app from a Telegram Mini App, which requires configuring Telegram OAuth credentials in the Dashboard. ## Article Authenticate users with OAuth social logins including Google, Apple, Twitter, Discord, GitHub, and more Privy natively supports OAuth login with Google, Apple, Twitter, Discord, GitHub, LinkedIn, Spotify, TikTok, Instagram, Telegram, and LINE. OAuth providers are delegated authentication, meaning a third party controls the authentication flow. Enable your desired providers in the Privy Dashboard before implementing. For providers not listed here, use Additional OAuth providers or JWT-based authentication. Implementation Initializing the login flow To authenticate users with Privy’s built-in UIs, see UI components. For whitelabel implementations, use initOAuth from the useLoginWithOAuth hook to trigger the OAuth login flow. OAuthProviderType required The OAuth provider to use for authentication. Valid values are: 'google', 'apple', 'twitter', 'github', 'discord', 'linkedin', 'spotify', 'tiktok', 'instagram', 'telegram', 'line'. If set to true, the OAuth flow will only allow users to log in with existing accounts and prevent new account creation. Usage Flow state The state variable returned by useLoginWithOAuth tracks the OAuth flow: Callbacks Pass optional callbacks to useLoginWithOAuth: The user object returned after successful login. Whether the user is a new user or an existing user. Whether the user was already authenticated before the OAuth flow. The login method used (‘google’, ‘apple’, etc.). The linked account if the user was already authenticated. Security and tokens Google OAuth may not work in in-app browsers due to Google’s restrictions in embedded webviews. Configure allowed OAuth redirect URLs to restrict post-login redirects. Access user OAuth and refresh tokens via the useOAuthTokens hook when using your own OAuth credentials. Resources Telegram Mini App seamless login Privy supports zero-click authentication for users who open your app from within a Telegram Mini App. When a user opens your app via a Mini App link, Privy detects the Telegram context and authenticates them automatically — no login() call required. Setup Configure Telegram OAuth credentials and enable seamless authentication in the Privy Dashboard under Telegram settings. Send your app URL to users via a bot message or Mini App link: You can also use a direct Mini App link (e.g., t.me/your_bot/your_app). For reference: KeyboardButton InlineKeyboardButton Client implementation No additional client code is required. Privy automatically detects the Mini App context on load and authenticates the user. Your app can read the authenticated user as usual from the usePrivy hook once ready is true. Configure login methods (optional) If loginMethods is configured in PrivyProvider, add "telegram": Seamless linking within a Mini App To link a Telegram account to an already-authenticated user from within a Mini App, use linkWithOAuth: