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.

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.

ctx
TriggerContext
required

The TriggerContext object for the run that is requesting authentication.

integration
TriggerIntegration

The Integration client that is requesting authentication.

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.

Was this page helpful?