mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-13 00:19:08 +00:00
FEAT: salesforce passport
This commit is contained in:
@@ -89,6 +89,19 @@ export class OauthController {
|
||||
return await this.callback(req, 'mailchimp');
|
||||
}
|
||||
|
||||
@Get('salesforce')
|
||||
@UseGuards(AuthGuard('salesforce'))
|
||||
async oauthSalesforce() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Get('salesforce/callback')
|
||||
@UseGuards(AuthGuard('salesforce'))
|
||||
@Redirect()
|
||||
async oauthSalesforceCallback(@Req() req) {
|
||||
return await this.callback(req, 'salesforce');
|
||||
}
|
||||
|
||||
async callback(@Req() req: Request, plugin) {
|
||||
const { error, state: customer_id } = req.query;
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ export class HubspotStrategy extends PassportStrategy(Strategy) {
|
||||
clientID: oauthSecrets.hubspot.client_id,
|
||||
clientSecret: oauthSecrets.hubspot.client_secret,
|
||||
callbackURL: oauthSecrets.hubspot.redirect_uri,
|
||||
redirectUri: oauthSecrets.hubspot.redirect_uri,
|
||||
scope:
|
||||
'automation business-intelligence oauth forms integration-sync sales-email-read crm.lists.read crm.objects.contacts.read crm.schemas.contacts.read crm.objects.companies.read crm.objects.deals.read crm.schemas.companies.read crm.schemas.deals.read crm.objects.owners.read crm.objects.quotes.read crm.schemas.quotes.read crm.objects.line_items.read crm.schemas.line_items.read',
|
||||
passReqToCallback: true,
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
import { Strategy } from 'passport-forcedotcom';
|
||||
import { PassportStrategy } from '@nestjs/passport';
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { OauthSecrets } from 'src/utils/OauthSecrets';
|
||||
|
||||
@Injectable()
|
||||
export class SalesforceStrategy extends PassportStrategy(
|
||||
Strategy,
|
||||
'salesforce',
|
||||
) {
|
||||
constructor(
|
||||
@Inject('OAUTH_SECRETS')
|
||||
private readonly oauthSecrets: OauthSecrets,
|
||||
) {
|
||||
super(
|
||||
{
|
||||
clientID: oauthSecrets.salesforce.client_id,
|
||||
clientSecret: oauthSecrets.salesforce.client_secret,
|
||||
callbackURL: oauthSecrets.salesforce.redirect_uri,
|
||||
scope: [
|
||||
'wave_api',
|
||||
'chatter_api',
|
||||
'chatbot_api',
|
||||
'cdp_ingest_api',
|
||||
'cdp_profile_api',
|
||||
'api',
|
||||
'pardot_api',
|
||||
'cdp_segment_api',
|
||||
'cdp_query_api',
|
||||
'refresh_token',
|
||||
'offline_access',
|
||||
],
|
||||
passReqToCallback: true,
|
||||
},
|
||||
(accessToken, refreshToken, tokenInfo, profile, done) => {
|
||||
return done(null, profile, { accessToken, refreshToken, tokenInfo });
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
authenticate(req, options) {
|
||||
const { customer_id } = req.query;
|
||||
options.state = customer_id;
|
||||
super.authenticate(req, options);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user