Node.js SugarCRM: SugarCRM Authenticate

Back to Index

Demonstrates how to authenticate to the SugarCRM REST v10 API. This is how an OAuth2 access token is obtained.
Note: This example uses our own demo SugarCRM domain containing demo data. You should replace "cscspanset.demo.sugarcrm.eu" with your own domain.

Documentation: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_7.8/Integration/Web_Services/v10/Examples/Bash/How_to_Authenticate_and_Log_Out/


var os = require('os');
if (os.platform() == 'win32') {  
    var chilkat = require('chilkat_node6_win32'); 
} else if (os.platform() == 'linux') {
    if (os.arch() == 'arm') {
        var chilkat = require('chilkat_node6_arm');
    } else if (os.arch() == 'x86') {
        var chilkat = require('chilkat_node6_linux32');
    } else {
        var chilkat = require('chilkat_node6_linux64');
    }
} else if (os.platform() == 'darwin') {
    var chilkat = require('chilkat_node6_macosx');
}

function chilkatExample() {

    var rest = new chilkat.Rest();
    var success;

    success = rest.Connect("cscspanset.demo.sugarcrm.eu",443,true,true);
    if (success !== true) {
        console.log(rest.LastErrorText);
        return;
    }

    rest.AddHeader("Cache-Control","no-cache");

    //  The following code creates the JSON request body.
    //  The JSON created by this code is shown below.
    var jsonReq = new chilkat.JsonObject();
    jsonReq.UpdateString("grant_type","password");
    jsonReq.UpdateString("client_id","sugar");
    jsonReq.UpdateString("client_secret","");
    jsonReq.UpdateString("username","SUGARCRM_LOGIN");
    jsonReq.UpdateString("password","SUGARCRM_PASSWORD");
    jsonReq.UpdateString("platform","custom_api");

    var sbReq = new chilkat.StringBuilder();
    jsonReq.EmitSb(sbReq);

    rest.AddHeader("Content-Type","application/json");

    var sbJson = new chilkat.StringBuilder();
    success = rest.FullRequestSb("POST","/rest/v10/oauth2/token",sbReq,sbJson);
    if (success !== true) {
        console.log(rest.LastErrorText);
        return;
    }

    if (rest.ResponseStatusCode !== 200) {
        console.log("Received error response code: " + rest.ResponseStatusCode);
        console.log("Response body:");
        console.log(sbJson.GetAsString());
        return;
    }

    var json = new chilkat.JsonObject();
    json.LoadSb(sbJson);

    //  The following code parses the JSON response.
    //  A sample JSON response is shown below the sample code.
    var access_token;
    var expires_in;
    var token_type;
    var scope;
    var refresh_token;
    var refresh_expires_in;
    var download_token;

    access_token = json.StringOf("access_token");
    expires_in = json.IntOf("expires_in");
    token_type = json.StringOf("token_type");
    scope = json.IsNullOf("scope");
    refresh_token = json.StringOf("refresh_token");
    refresh_expires_in = json.IntOf("refresh_expires_in");
    download_token = json.StringOf("download_token");

    console.log("Example Completed.");

}

chilkatExample();

Sample JSON Request Body

{  
   "grant_type":"password",
   "client_id":"sugar",
   "client_secret":"",
   "username":"SUGARCRM_LOGIN",
   "password":"SUGARCRM_PASSWORD",
   "platform":"custom_api"
}

Sample JSON Response Body

{
   "access_token":"c6d495c9-bb25-81d2-5f81-533ef6479f9b",
   "expires_in":3600,
   "token_type":"bearer",
   "scope":null,
   "refresh_token":"cbc40e67-12bc-4b56-a1d9-533ef62f2601",
   "refresh_expires_in":1209600,
   "download_token":"cc5d1a9f-6627-3349-96e5-533ef6b1a493"
}