diff --git a/src/providers/index.js b/src/providers/index.js index b6115abcd1..815db8cbf9 100644 --- a/src/providers/index.js +++ b/src/providers/index.js @@ -24,6 +24,7 @@ import Mixer from './mixer' import Netlify from './netlify' import Okta from './okta' import Reddit from './reddit' +import Salesforce from './salesforce' import Slack from './slack' import Spotify from './spotify' import Strava from './strava' @@ -59,6 +60,7 @@ export default { Netlify, Okta, Reddit, + Salesforce, Slack, Spotify, Strava, diff --git a/src/providers/salesforce.js b/src/providers/salesforce.js new file mode 100644 index 0000000000..fd3fa533bc --- /dev/null +++ b/src/providers/salesforce.js @@ -0,0 +1,21 @@ +export default (options) => { + return { + id: 'salesforce', + name: 'Salesforce', + type: 'oauth', + version: '2.0', + params: { display: 'page', grant_type: 'authorization_code' }, + accessTokenUrl: 'https://login.salesforce.com/services/oauth2/token', + authorizationUrl: 'https://login.salesforce.com/services/oauth2/authorize?response_type=code', + profileUrl: 'https://login.salesforce.com/services/oauth2/userinfo', + state: false, + profile: (profile) => { + return { + ...profile, + id: profile.user_id, + image: profile.picture + } + }, + ...options + } +} diff --git a/www/docs/providers/salesforce.md b/www/docs/providers/salesforce.md new file mode 100644 index 0000000000..847f4fb2bd --- /dev/null +++ b/www/docs/providers/salesforce.md @@ -0,0 +1,22 @@ +--- +id: salesforce +title: Salesforce +--- + +## Documentation + +https://help.salesforce.com/articleView?id=remoteaccess_authenticate.htm&type=5 + +## Example + +```js +import Providers from `next-auth/providers` +... +providers: [ + Providers.Salesforce({ + clientId: process.env.SALESFORCE_CLIENT_ID, + clientSecret: process.env.SALESFORCE_CLIENT_SECRET, + }) +} +... +```