This directory contains the users.js file where the implementation of the route is handled. The POST /forest/actions/impersonate API call is triggered when you click on the Smart Action in the Forest UI.
routes/users.js
router.post('/actions/impersonate', (req, res) => {let userId =req.body.data.attributes.ids[0];response.send({ webhook: { // This is the object that will be used to fire http calls. url:'https://my-app-url/login',// The url of the company providing the service. method:'POST',// The method you would like to use (typically a POST). headers: { },// You can add some headers if needed (you can remove it). body: { // A body to send to the url (only JSON supported). adminToken:'your-admin-token', }, }, success:`Impersonating user ${userId}`,// The success message that will be toasted. redirectTo:'https://my-app-url/',// Force the redirection to your app if needed. });});module.exports= router;
/routes/users.js
router.post('/actions/impersonate', (req, res) => {let userId =req.body.data.attributes.ids[0];response.send({ webhook: { // This is the object that will be used to fire http calls. url:'https://my-app-url/login',// The url of the company providing the service. method:'POST',// The method you would like to use (typically a POST). headers: { },// You can add some headers if needed (you can remove it). body: { // A body to send to the url (only JSON supported). adminToken:'your-admin-token', }, }, success:`Impersonating user ${userId}`,// The success message that will be toasted. redirectTo:'https://my-app-url/',// Force the redirection to your app if needed. });});module.exports= router;
This is useful for authentication using cookies. By using this exemple, you're performing the login request directly from the browser. Thus, the cookies will be automatically sent from your own service to the browser (as you'd normally do with your own app).