client.defineAuthResolver(slack, async (ctx) => {
  if (!ctx.account?.id) {
    return;
  }

  const tokens = await clerk.users.getUserOauthAccessToken(ctx.account.id, "oauth_slack");

  if (tokens.length === 0) {
    throw new Error(`Could not find Slack auth for account ${ctx.account.id}`);
  }

  return {
    type: "oauth",
    token: tokens[0].token,
  };
});

Auth Resolvers allow you to inject the authentication credentials of your users, using a third-party service like Clerk or Nango or your own custom solution.

See our Bring-your-own Auth Guide for more about how this works.

client.defineAuthResolver(slack, async (ctx) => {
  if (!ctx.account?.id) {
    return;
  }

  const tokens = await clerk.users.getUserOauthAccessToken(ctx.account.id, "oauth_slack");

  if (tokens.length === 0) {
    throw new Error(`Could not find Slack auth for account ${ctx.account.id}`);
  }

  return {
    type: "oauth",
    token: tokens[0].token,
  };
});

Parameters

integration
TriggerIntegration
required

The Integration client (e.g. slack) to define the auth resolver for.

resolver
AuthResolver
required

The resolver function to use for this integration. Should return a AuthResolverResult object.

AuthResolverResult

type
string
required

Should be either “apiKey” or “oauth”

token
string
required

The authentication token to use for this integration.

additionalFields
Record<string, string>

Additional fields to pass to the integration.