Les clients qui utilisent la capture et le fond de panier de Janrain peuvent utiliser l’authentification Livefyre pour l’authentification unique (SSO), ce qui permet aux utilisateurs de contacter immédiatement vos applications Livefyre lorsqu’ils se connectent à votre site.
Pour bénéficier de cette intégration Capture/Backplane intégrée, vous devez modifier la configuration de votre application Capture et de votre intégration Livefyre.js.
Ignorez cette section si vous n’utilisez pas Janrain Capture.
Pour plus d’informations, voir la documentation de Janrain’s Backplane.
Livefyre a besoin de certaines informations d'identification de votre application Janrain Capture.
Configurez l’application Janrain Capture.
Rassemblez les informations suivantes pour Livefyre :
Livefyre reçoit directement les données du CNAME ; par conséquent, cette URL d’identité ne peut pas être un enregistrement CNAMEd (un CNAME d’URL vanity) qui correspond au CNAME réel de Janrain Capture.
Ajouter Livefyre permet par défaut aux utilisateurs stockés dans votre application Capture d’envoyer des notifications électroniques aux utilisateurs ou de les autoriser à suivre automatiquement les conversations sur lesquelles les utilisateurs commentent.
Paramètre | Type | Description |
---|---|---|
livefyre_comments | Chaîne | Avertissez l’utilisateur lorsqu’un utilisateur commente un article qu’il suit. Peut être immédiatement, souvent, ou jamais. |
livefyre_likes | Chaîne | Avertissez l’utilisateur lorsqu’un utilisateur aime une de ses publications. Peut être immédiatement, souvent, ou jamais. |
livefyre_replies | Chaîne | Avertissez l’utilisateur lorsqu’un utilisateur répond à l’une de ses publications. Peut être immédiatement, souvent ou jamais. |
livefyre_moderator_comments | Chaîne | Avertissez le modérateur lorsqu’une personne commente une conversation qu’elle modérait. Cela peut être immédiat, fréquent ou jamais. |
livefyre_moderator_flags | Chaîne | Avertissez le modérateur lorsqu’un utilisateur marque une publication sur une conversation qu’il modérait.Cela peut être immédiat, fréquent ou jamais. |
livefyre_autofollow_conversations | Booléen | Demandez à l’utilisateur de suivre automatiquement une conversation lorsqu’il quitte une publication. Peut être vrai ou faux. |
Livefyre.require fournit un plugin qui permet à l'auteur d'écouter le bus du Backplane de Janrain.
Lorsqu’un message d’identité/de connexion est diffusé sur le canal du fond de panier, la fonction auth.authenticate() est appelée pour vous avec le jeton d’authentification Livefyre de l’utilisateur. Vous devez tout de même implémenter un AuthDelegate.
Livefyre.require(['auth', 'backplane-auth-plugin#0'], function(auth, backplanePluginFactory) {
auth.plugin(backplanePluginFactory('network.fyre.co'));
auth.delegate({
login: function (finishLogin) {
loginWithCapture(finishLogin);
}
});
});
L’objet window.Backplane doit être défini sur votre page avant d’appeler auth.plugin avec le module externe Livefyre Backplane. Pour vous assurer que l’objet Backplane est disponible, appelez le code d’instanciation Livefyre à partir d’un rappel onReady. Consultez votre contact Janrain pour déterminer si d'autres applications peuvent utiliser l'objet Backplane.
Votre délégué d’authentification varie en fonction de votre instance Janrain.
Vous trouverez ci-dessous quelques exemples de la manière dont un délégué d’authentification peut rechercher une intégration de capture Janrain.
errback
: Rappel transmis à la méthode de connexion du délégué d’authentificationjanrain
: Référence à votre variable de capture Janrain.window.Backplane
: Référence à l’objet Backplane./**
* Login function
* In this case, opens a login modal and triggers Backplane to start listening
* for login messages
*/
authDelegate.login = function(finishLogin) {
var successCallback = function() {
// These need to be replaced with the actions that correspond to successful login
// and when the Janrain modal is closed.
janrain.events.onCaptureLoginSuccess.removeHandler(successCallback);
janrain.events.onModalClose.removeHandler(failureCallback);
finishLogin();
};
var failureCallback = function(e) {
janrain.events.onModalClose.removeHandler(failureCallback);
janrain.events.onCaptureLoginSuccess.removeHandler(successCallback);
finishLogin(e || new Error("Error logging in with Janrain Capture"));
};
// Open the modal to log a user in
janrain.capture.ui.renderScreen('signIn');
// Send a backplane message
window.Backplane.expectMessages('identity/login');
// Add handlers to specific janrain events
janrain.events.onCaptureLoginSuccess.addHandler(successCallback);
janrain.events.onModalClose.addHandler(failureCallback);
};
finishLogout
: Rappel transmis à la méthode de connexion du délégué d’authentification.
window.Backplane
: Référence à l’objet Backplane.
/**
* Logout function
* In this case, invalidates the session and removes the cookie.
* Also reloads the page to change state. In order to do this without a reload,
* it would be necessary to also update the UI.
*/
authDelegate.logout = function(finishLogout) {
Backplane.resetCookieChannel();
janrain.capture.ui.endCaptureSession();
finishLogout();
};
Ce lien peut renvoyer à n'importe quelle partie du site que vous souhaitez que les utilisateurs visitent pour accéder à la vue de leur propre page de profil. Cet exemple montre comment simplement imprimer l'objet auteur transmis.
/**
* Edit profile function
* @param user - User who would like to edit their profile
*/
authDelegate.editProfile = function(user) {
console.log(user);
};
Tout comme Modifier le Profil, ce lien doit renvoyer à la page d’un utilisateur qui diffère de celle de l’utilisateur actuellement connecté. Cela peut être mis en oeuvre comme bon vous semble. Cet exemple montre comment simplement consigner le paramètre author dans la console.
/**
* View profile function
* @param user - User or userId whose profile should be displayed
*/
authDelegate.viewProfile = function(user) {
console.log(author);
};
Pour synchroniser les Profils distants de Livefyre avec votre système de gestion des utilisateurs Capture, vous devez suivre une série d'étapes appelées Ping for Pull. Ce processus nécessite que vous obteniez un jeton d'accès valide auprès de Janrain, puis que vous transmettiez ce jeton à un point de terminaison spécifié à l’étape 3 ci-dessous.
Obtenez un code d'accès de Janrain.
Pour obtenir le code d’accès, fournissez les informations d’identification nécessaires, spécifiez user_type comme "user" et uuid comme uuid de l’utilisateur actuel à mettre à jour. Pour plus d’informations, voir https://developers.janrain.com/rest-api/methods/authentication/access-codes-and-tokens/getauthorizationcode/.
Échangez le code d'accès d'un jeton d'accès. Fournissez les informations d’identification nécessaires, le code d’accès reçu de l’étape 1 et spécifiez grant_type comme "authorized_code".
Pour plus d’informations, voir https://developers.janrain.com/rest-api/methods/authentication/oauth/token/.
Accédez au point de terminaison Livefyre "Ping to Pull Capture".
URL du point de terminaison : https://{networkName}/api/v1.1/private/capture/profile_updated/?jrtoken={token} où {networkName} est le nom réseau fourni par Livefyre et le jeton est le jeton reçu de Janrain à l’étape 2.
Une fois que vous avez atteint ce point de terminaison, vous recevez une réponse 202 et Livefyre commence un processus asynchrone.
Pour bénéficier de cette intégration Capture/Backplane intégrée, vous devez apporter quelques modifications à la configuration de votre application Capture et de votre intégration Livefyre.js.
Janrain envoie des messages de connexion/déconnexion réussis via le bus Backplane, sur lequel l'application Livefyre, lorsqu'elle est correctement configurée, écoute. Ces messages contiennent toutes les informations nécessaires pour montrer aux utilisateurs de l’application qu’ils sont connectés ou déconnectés. Les développeurs peuvent vue les messages du bus du fond de panier en consultant l’onglet Réseau de la console de développement de votre navigateur.
Demande:
https://backplane1.janrainbackplane.com//bus/{CUSTOMER_NAME}/channel/{CHANNEL}?callback=Backplane.response&rnd=0.15930617856793106
Réponse:
Backplane.response([{
"id": "2014-05-06T22:51:55.406Z-eZp1HB1F7B",
"channel_name": "{CHANNEL_NAME}",
"message": {
"source": "https://{CUSTOMER_DOMAIN}",
"type": "identity/login",
"sticky": true,
"payload": {
"context": "https://{CUSTOMER_DOMAIN}",
"identities": {
"startIndex": 0,
"itemsPerPage": 1,
"totalResults": 1,
"entry": {
"id": "https://{CUSTOMER}.janraincapture.com/oauth/public_profile?uuid={UNIQUE_USER_ID}",
"displayName": "{USER_DISPLAY_NAME}",
"accounts": [
{
"username": "{USER_DISPLAY_NAME}",
"identityUrl": "https://{CUSTOMER}.janraincapture.com/oauth/public_profile?uuid={UNIQUE_USER_ID}",
"photos": [
{
"id": 48570146,
"value": "https://lh3.googleusercontent.com/-h8poqH8hlgw/AAA/AAA1/QuHtbeHMJzc/photo.jpg?sz=50",
"type": "other"
},
{
"id": 48570147,
"value": "https://lh3.googleusercontent.com/-h8poqH8hlgw/AAA/AAA1/QuHtbeHMJzc/photo.jpg?sz=50",
"type": "original"
},
{
"id": 48570148,
"value": "https://lh3.googleusercontent.com/-h8poqH8hlgw/AAA/AAA1/QuHtbeHMJzc/photo.jpg?sz=50",
"type": "large"
},
{
"value": "https://lh3.googleusercontent.com/-h8poqH8hlgw/AAA/AAA1/QuHtbeHMJzc/photo.jpg?sz=50",
"type": "avatar"
}
]
},
{
"identityUrl": "{USER_PROFILE_LINK}"
}
]
}
}
}
}
}
]);
Réponse vide :
Backplane.response([]);
Demande:
https://backplane1.janrainbackplane.com/v1.2/bus/{CUSTOMER}/channel/new?callback=Backplane.finishInit&rnd=0.1057701709214598
Réponse:
Backplane.finishInit("{CHANNEL}");
Si ces messages ne s’affichent pas dans vos requêtes réseau, Livefyre ne sera pas au courant des tentatives de connexion/déconnexion et, par conséquent, Livefyre ne pourra pas intégrer l’utilisateur dans l’application.