n8n/packages/core/src/OAuth2Helper.ts
Ricardo Espinoza 7fcd821cad
feat(core): enable sending client credentials in body (#4377)
*  Enable inject credentials in the body for OAuth2 CC

* 🐛 Persist token data

* 👕 Fix linting error
2022-10-20 11:15:28 -04:00

23 lines
644 B
TypeScript

/* eslint-disable @typescript-eslint/naming-convention */
import { ICredentialDataDecryptedObject } from 'n8n-workflow';
import clientOAuth2 from 'client-oauth2';
export const getClientCredentialsToken = async (
oAuth2Client: clientOAuth2,
credentials: ICredentialDataDecryptedObject,
): Promise<clientOAuth2.Token> => {
const options = {};
if (credentials.authentication === 'body') {
Object.assign(options, {
headers: {
Authorization: '',
},
body: {
client_id: credentials.clientId as string,
client_secret: credentials.clientSecret as string,
},
});
}
return oAuth2Client.credentials.getToken(options);
};