Instance methods
defineAuthResolver()
Define a custom auth resolver for a specific integration
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
requiredThe Integration client (e.g. slack
) to define the auth resolver for.
resolver
AuthResolver
requiredThe resolver function to use for this integration. Should return a AuthResolverResult object.
ctx
TriggerContext
requiredThe TriggerContext object for the run that is requesting authentication.
integration
TriggerIntegration
The Integration client that is requesting authentication.
AuthResolverResult
type
string
requiredShould be either “apiKey” or “oauth”
token
string
requiredThe authentication token to use for this integration.
additionalFields
Record<string, string>
Additional fields to pass to the integration.
Was this page helpful?
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,
};
});