Skip to content

Instantly share code, notes, and snippets.

@byron-janrain
Last active August 29, 2015 14:17
Show Gist options
  • Save byron-janrain/91dc1c830bc1ecab2796 to your computer and use it in GitHub Desktop.
Save byron-janrain/91dc1c830bc1ecab2796 to your computer and use it in GitHub Desktop.
example social login event handler
(function() {
if (typeof window.janrain !== 'object') window.janrain = {};
if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};
/* _______________ can edit below this line _______________ */
janrain.settings.tokenUrl = '__REPLACE_WITH_YOUR_TOKEN_URL__';
janrain.settings.type = 'embed';
janrain.settings.appId = 'ohhongcgbmddmdplpanb';
janrain.settings.appUrl = 'https://plex-qa.rpxnow.com';
janrain.settings.providers = ["facebook","yahoo","googleplus","twitter"];
janrain.settings.providersPerPage = '6';
janrain.settings.format = 'two column';
janrain.settings.actionText = 'Sign in using your account with';
janrain.settings.showAttribution = true;
janrain.settings.fontColor = '#333333';
janrain.settings.fontFamily = 'arial';
janrain.settings.backgroundColor = '#FFFFFF';
janrain.settings.width = '380';
janrain.settings.borderColor = '#CCCCCC';
janrain.settings.borderRadius = '10'; janrain.settings.buttonBorderColor = '#CCCCCC';
janrain.settings.buttonBorderRadius = '5';
janrain.settings.buttonBackgroundStyle = 'gradient';
janrain.settings.language = '';
janrain.settings.linkClass = 'janrainEngage';
janrain.settings.tokenUrl = window.location.href;
janrain.settings.tokenAction = 'event';
/* _______________ can edit above this line _______________ */
function isReady() { janrain.ready = true; };
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", isReady, false);
} else {
window.attachEvent('onload', isReady);
}
var e = document.createElement('script');
e.type = 'text/javascript';
e.id = 'janrainAuthWidget';
if (document.location.protocol === 'https:') {
e.src = 'https://rpxnow.com/js/lib/plex-qa/engage.js';
} else {
e.src = 'http://widget-cdn.rpxnow.com/js/lib/plex-qa/engage.js';
}
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(e, s);
})();
function janrainPlexLogin(accessToken) {
if (!accessToken) {
console && console.error('Bork!');
}
jQuery.ajax({
url: Drupal.settings.basePath + 'services/session/token',
error: function (jqxhr, status, error) {console.error(error);},
success: function (drupalToken) {
console && console.log(drupalToken);
jQuery.ajax({
url: Drupal.settings.basePath + 'janrain/login/token.json',
type:'post',
xhrFields:{withCredentials:true},
beforeSend: function (req) {req.setRequestHeader('X-CSRF-Token', drupalToken);},
error: function (jqxhr, status, error) {console.error(error);},
data:{token:accessToken},
success: function (resp) {
console.log(resp);
document.getElementById('user_login').submit();
} // janrain success
}); // janrain ajax
} // drupal success
}); // drupal ajax
}
janrain.settings.beforeJanrainWidgetOnLoad = [function () {
janrain.events.onProviderLoginToken.addHandler(function (evt) {
janrainPlexLogin(evt.token);
});
}];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment