handleOAuthLink
Function: handleOAuthLink()
handleOAuthLink(
client,provider,authorizationCode,redirectUri):Promise<InterfaceOAuthLinkResponse>
Defined in: src/utils/oauth/oauthFlowHandler.ts:102
Links an existing user account with an OAuth provider.
This function associates a user's existing account with an OAuth provider by exchanging the authorization code. This allows users to sign in with multiple OAuth providers or add additional sign-in methods to their account.
Parameters
client
ApolloClient<unknown>
Apollo GraphQL client instance for making API requests
provider
OAuth provider to link (e.g., 'GOOGLE', 'GITHUB')
authorizationCode
string
Authorization code received from OAuth provider callback
redirectUri
string
Redirect URI used in the OAuth flow for validation
Returns
Promise<InterfaceOAuthLinkResponse>
Promise that resolves to the linking operation result containing user data with linked OAuth accounts
Throws
Error When GraphQL errors are returned from the server
Throws
Error When no response data is received despite successful request
Throws
ApolloError When network or Apollo Client errors occur
Example
const linkResult = await handleOAuthLink(
apolloClient,
'GITHUB',
'auth-code-456',
'http://localhost:3000/callback'
);
console.log('User ID:', linkResult.id);
console.log('Linked accounts:', linkResult.oauthAccounts);