Here my function for that. I hope this helps.
function validate() {
var username = 'YOUR USERNAME';
var password = 'YOUR PASS';
var http = new XMLHttpRequest();
var url = "YOUR TOKEN URL";
var str1 = "username=";
var str2 = "&password=";
var str3 = "&f=json&client=requestip&expiration=1440";
var params = str1.concat(username, str2, password, str3);
//f="json", client="requestip", expiration="1440"
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200) {
var tokenResponse = http.responseText;
token=JSON.parse(tokenResponse);
if (tokenResponse.search("error") == -1) {
esri.id.registerToken(
{server: 'YOUR REST SERVICE',
userId: 'YOUR EXAMPLE USER',
token: token.token,
expires: token.expires,
ssl: false
});
//DO SOMETHING
.....
} else {
alert("Incorrect Login, try again.");
}
}
};
http.send(params);
return false;
}