unAuthorize
Logs a user out of the CRM connector and clears or revokes stored credentials.
Signature
async function unAuthorize({ user }) {
user.accessToken = '';
user.refreshToken = '';
await user.save();
return {
successful: true,
returnMessage: {
messageType: 'success',
message: 'Logged out.',
ttl: 1000
}
};
}
Input
| Field | Description |
|---|---|
user |
Persisted App Connect user model for the connected CRM user. |
Behavior
If the CRM supports token revocation, call the CRM revoke/deauthorize endpoint first. Then clear credentials from App Connect storage or destroy the user record.
Common choices:
| Choice | When to use it |
|---|---|
Clear accessToken and refreshToken, then user.save() |
Keeps user settings and connector preferences. |
user.destroy() |
Removes the entire CRM user record, including settings tied to that record. |
Return
| Field | Description |
|---|---|
successful |
Optional. Proxy mode returns it; route handlers mainly use returnMessage. |
returnMessage |
Optional UI feedback. |
Reference
const axios = require('axios');
async function unAuthorize({ user }) {
//--------------------------------------
//--- TODO: Add CRM API call here ------
//--------------------------------------
// const revokeUrl = 'https://api.crm.com/oauth/unauthorize';
// const revokeBody = {
// token: user.accessToken
// }
// const accessTokenRevokeRes = await axios.post(
// revokeUrl,
// revokeBody,
// {
// headers: { 'Authorization': `Basic ${getBasicAuth({ apiKey: user.accessToken })}` }
// });
// A. If you want to remove just user credentials, NOT user settings
user.accessToken = '';
user.refreshToken = '';
await user.save();
// B. If you want to destroy the whole user record
// await user.destroy();
return {
returnMessage: {
messageType: 'success',
message: 'Logged out of TestCRM',
ttl: 1000
}
}
//--------------------------------------------------------------
//--- CHECK: Open db.sqlite to check if user info is removed ---
//--------------------------------------------------------------
}
module.exports = unAuthorize;