Web-Server Flow

Start by redirecting the user to the authorization url:

import { getAuthorizationUrl } from 'ts-force';

const authUrl = getAuthorizationUrl({
   instanceUrl: 'https://login.salesforce.com',
   client_id: process.env.CLIENT_ID,
   redirect_uri: `${process.env.SITE_URL}/api/token`,
   prompt: 'login',
});

//res.redirect(authUrl) or window.location.href = authUrl
import { Rest, requestAccessToken } from 'ts-force';

// example using express
app.get('/api/token', function(req, res) {
    const code = req.param('code') as string;
    const resp = await requestAccessToken({
        grant_type: 'authorization_code',
        instanceUrl: req.headers.referer,
        code,
        client_id: process.env.CLIENT_ID,
        client_secret: process.env.CLIENT_SECRET,
        redirect_uri: `${process.env.SITE_URL}/api/token`,
     });

     //typically you would now store token & instanceUrl in user session (via jwt).  
     // Then you can later create a ts-force client like so:
     const restInstance = new Rest(resp);
});

Last updated

Was this helpful?