mozilla

Revision 348845 of Configuration rapide

  • Raccourci de la révision : Persona/Quick_Setup
  • Titre de la révision : Quick Setup
  • ID de la révision : 348845
  • Créé :
  • Créateur : Derek
  • Version actuelle ? Non
  • Commentaire
Étiquettes : 

Contenu de la révision

Cette page a besoin d'être traduite. Votre aide est la bienvenue

Seules cinq étapes sont nécessaires pour installer un système d'authentification Persona sur votre site :

  1. Inclure la librairie javascript Persona sur vos pages.
  2. Ajouter les boutons “connexion” et “déconnexion”.
  3. Observer les actions connexion et déconnexion.
  4. Vérifier l'identification de l'utilisateur.
  5. Consulter les meilleures pratiques.

Vous devriez être en mesure de le faire fonctionner en un simple après-midi, mais chaque chose en son temps : si vous comptez utiliser Persona sur votre site, s'il vous plaît, prenez un moment pour vous inscrire sur la liste de diffusion Persona notices. Elle est à faible trafic, étant uniquement utilisée pour annoncer les changemments et les problème de sécurité qui pourraient affecter votre site.

Étape 1 : Inclure la librairie Persona

Persona est conçu pour ne pas être lié à un navigateur en particulier et fonctionne bien dans les principaux navigateurs de bureau et mobiles.

Dans le futur nous espérons que les navigateurs fourniront un support natif de Persona, mais en attendant nous fournissons une librairie JavaScript qui implémente pleinement l'interface et l'API client du protocole. En incluant cette librairie, vos utilisateurs seront en mesure de se connecter avec Persona, que leur navigateur en ait un support natif ou non.

Pour inclure la librairie JavaScript Persona, vous pouvez placer cette balise  script dans l'entête de vos pages :

<script src="https://login.persona.org/include.js"></script>

Vous devez inclure ceci dans toutes les pages qui utilisent les fonctions de {{ domxref("navigator.id") }}. Persona étant toujours en développement, il est déconseillé d'héberger vous-même une copie du fichier include.js.

Etape 2: Ajoutez des boutons de connexion et de déconnexion

Persona étant conçu comme une API DOM, vous devez appeler des fonctions quand un utilisateur clique sur un bouton de connexion ou de déconnexion sur votre site. Pour ouvrir la boîte de dialogue Persona et demander à l'utilisateur de se connecter, vous devez appeler {{ domxref("navigator.id.request()") }}. Pour la déconnexion, appelez {{ domxref("navigator.id.logout()") }}.

Par exemple :

var signinLink = document.getElementById('signin');
if (signinLink) {
  signinLink.onclick = function() { navigator.id.request(); };
};

var signoutLink = document.getElementById('signout');
if (signoutLink) {
  signoutLink.onclick = function() { navigator.id.logout(); };
};

À quoi devraient ressembler ces boutons ? Consultez notres page de ressources graphiques pour des exemple complets basés sur du CSS !

Step 3: Gérez les actions de connexion et de déconnexion

Afin que Persona puisse fonctionner, vous devez lui dire quoi faire lorsqu'un utilisateur se connecte ou se déconnecte. Pour cela, appelez la fonction {{ domxref("navigator.id.watch()") }} et passez lui trois paramètres :

  1. L'adresse email de l'utilisateur actuellement connecté à votre site depuis cet ordinateur, ou null si aucun utilisateur n'est connecté. Par exemple, vous pouvez consulter un cookie du navigateur pour déterminer qui est connecté.

  2. Une fonction à appeler lorsqu'une action onlogin est déclenchée. Cette fonction reçoit un seul paramètre, une "assertion d'identité" qui doit être vérifiée.

  3. Une fonction à appeler lorsqu'une action onlogout est déclenchée. Cette fonction ne reçoit aucun paramètre.

Note: Vous devez toujours inclure à la fois onlogin et onlogout lorsque vous appelez {{ domxref("navigator.id.watch()") }}.

Par exemple, si vous pensez que Bob est connecté à votre site, vous pourriez faire ceci :

var currentUser = 'bob@example.com';

navigator.id.watch({
  loggedInEmail: currentUser,
  onlogin: function(assertion) {
    // A user has logged in! Here you need to:
    // 1. Send the assertion to your backend for verification and to create a session.
    // 2. Update your UI.
    $.ajax({
      type: 'POST',
      url: '/auth/login', // This is a URL on your website.
      data: {assertion: assertion},
      success: function(res, status, xhr) { window.location.reload(); },
      error: function(res, status, xhr) { alert("login failure" + res); }
    });
  },
  onlogout: function() {
    // A user has logged out! Here you need to:
    // Tear down the user's session by redirecting the user or making a call to your backend.
    $.ajax({
      type: 'POST',
      url: '/auth/logout', // This is a URL on your website.
      success: function(res, status, xhr) { window.location.reload(); },
      error: function(res, status, xhr) { alert("logout failure" + res); }
    });
  }
});

Dans cet exemple, onlogin et onlogout sont tous deux implémentés en effectuant des requêtes POST asynchrones vers le backend de votre site. Le backend effectue ensuite la connexion ou la déconnexion de l'utilisateur, généralement en créant ou en effaçant des informations dans un cookie de session. Ensuite, si tout fonctionne bien, la page se recharge afin de prendre en compte le nouvel état de connexion.

Bien entendu vous pouvez utiliser des requêtes AJAX pour implémenter cela sans recharger la page ni rediriger l'utilisateur, mais cela ne fait pas partie du périmètre de ce tutoriel.

Voici un autre exemple, cette fois-ci sans utiliser jQuery.

function simpleXhrSentinel(xhr) {
    return function() {
        if (xhr.readyState == 4) {
            if (xhr.status == 200)
                // reload page to reflect new login state
                window.location.reload();
            else
                alert("XMLHttpRequest error: " + xhr.status); } } }
 
function verifyAssertion(assertion) {
    // Votre backend doit retourner un status HTTP 200 pour indiquer
    // que la vérification de l'adresse email de l'utilisateur a été effectuée
    // avec succès et doit associer currentUser à cette adresse lorsque
    // la page est rechargée
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/xhr/sign-in", true);
    xhr.send(assertion); // for verification by your backend
    xhr.onreadystatechange = simpleXhrSentinel(xhr); }
 
function signoutUser() {
    // Vous devez retourner un code de statut 200 pour indiquer que
    // la déconnexion a été effectuée avec succès (généralement en réinitialisant
    // une ou plusieurs variables de session) et associer currentUser à 'null'
    // lorsque la page sera rechargée
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "/xhr/sign-out", true);
    xhr.send(null);
    xhr.onreadystatechange = simpleXhrSentinel(xhr); }
 
// Go!
navigator.id.watch( {
    loggedInUser: currentUser,
         onlogin: verifyAssertion,
        onlogout: signoutUser } );

Vous devez appeler navigator.id.watch() sur toutes les pages comprenant un bouton de connexion ou de déconnexion. Pour gérer les améliorations de Persona comme la connexion automatique et la déconnexion globale de vos utilisateurs, il est conseillé d'appeler cette fonction sur toutes les pages de votre site.

Etape 4 : Vérifiez les identifiants de l'utilisateur

Plutôt qu'un mot de passe, Persona utilise des "assertions d'identité" qui sont une sorte de mot de passe à usage unique, lié à un seul site et combiné à l'adresse email de l'utilisateur. Lorsqu'un utilisateur désire se connecter, votre fonction de callback onlogin sera appelée et recevra en paramètre une assertion de cet utilisateur. Avant d'autoriser la connexion, vous devez vérifier la validité de cette assertion.

Il est extrêmement important que vous vérifiiez cette assertion sur votre serveur et non en JavaScript (qui s'exécute dans le navigateur de votre utilisateur), car cela serait trop facile à contourner. L'exemple ci-dessous confie l'assertion au backend du site en utilisant le helper jQuery $.ajax() pour effectuer un POST de celle-ci vers /api/login.

Une fois que le serveur dispose d'une assertion, comment la vérifier ? Le moyen le plus simple est d'utiliser un helper fourni par Mozilla. Effectuez un simple POST de l'assertion vers https://verifier.login.persona.org/verify avec deux paramètres :

  1. assertion: L'assertion d'identité fournie par l'utilisateur.
  2. audience: Le nom de domaine et le port de votre site web. Vous devez coder cette valeur en dur dans votre backend ; ne la composez pas en fonction d'une quelconque donnée fournie par l'utilisateur.

Par exemple, si vous êtes example.com, vous pouvez utiliser la ligne de commande pour tester une assertion avec :

$ curl -d "assertion=<ASSERTION>&audience=https://example.com:443" "https://verifier.login.persona.org/verify"

Si elle est valide, vous recevrez une réponse en JSON comme celle-ci :

{
  "status": "okay",
  "email": "bob@eyedee.me",
  "audience": "https://example.com:443",
  "expires": 1308859352261,
  "issuer": "eyedee.me"
}

Pour en apprendre plus à propos du service de vérification, lisez The Verification Service API. Un exemple d'implémentation de /api/login utilisant Python, le framework web Flask, et la librairie HTTP Requests ressemblerait à ça :

@app.route('/api/login', methods=['POST'])
def login():
    # La requête doit avoir une assertion à vérifier
    if 'assertion' not in request.form:
        abort(400)

    # Envoyer l'assertion au service de vérification de Mozilla.
    data = {'assertion': request.form['assertion'], 'audience': 'https://example.com:443'}
    resp = requests.post('https://verifier.login.persona.org/verify', data=data)

    # Le vérificateur a-t-il répondu ?
    if resp.ok:
        # Décoder la réponse
        verification_data = json.loads(resp.content)

        # Si l'assertion est valide
        if verification_data['status'] == 'okay':
            # Connecter l'utilisateur en lui envoyant un cookie de session sécurisé
            session.update({'email': verification_data['email']})
            return resp.content

    # Oups, quelque chose a échoué. Abandon.
    abort(500)

La gestion de session est probablement très similaire à votre système de connexion existant. Le premier grand changement est de vérifier l'identité de l'utilisateur en vérifiant une assertion plutôt que son mot de passe. L'autre grand changement est de s'assurer que l'adresse email de l'utilisateur est disponible pour la passer dans le paramètre loggedInEmail de {{ domxref("navigator.id.watch()") }}.

La déconnexion est simple : vous n'avez qu'à effacer le cookie de session de l'utilisateur.

Step 5: Consultez les bonnes pratiques

Une fois que tout fonctionne et que vous vous êtez connecté et déconnecté avec succès de votre site, vous devriez prendre un moment pour consulter les bonnes pratiques pour utiliser Persona de manière sûre et sécurisée.

Si vous construisez un site de production, vous devriez écrire des tests d'intégration qui simulent la connexion et la déconnexion d'un utilisateur à votre site en utilisant BrowserID. Pour faciliter ces actions dans Selenium, nous vous conseillons la librairie bidpom. Les sites mockmyid.com et personatestuser.org peuvent également s'avérer utiles.

Enfin, n'oubliez pas de vous inscrire à la liste de difussion Persona notices afin d'être informé des failles de sécurité ou de changements incompatibles avec de précédentes versions de l'API Persona. Cette liste a un taffic extrêmement faible : elle est uniquement utilisée pour annoncer des changements qui pourraient avoir un impact négatif sur votre site.

 

Source de la révision

<div class="warning">
  Cette page a besoin d'être traduite. Votre aide est la bienvenue</div>
<p>Seules cinq étapes sont nécessaires pour installer un système d'authentification Persona sur votre site :</p>
<ol>
  <li>Inclure la librairie javascript Persona sur vos pages.</li>
  <li>Ajouter les boutons “connexion” et “déconnexion”.</li>
  <li>Observer les actions connexion et déconnexion.</li>
  <li>Vérifier l'identification de l'utilisateur.</li>
  <li>Consulter les meilleures pratiques.</li>
</ol>
<p>Vous devriez être en mesure de le faire fonctionner en un simple après-midi, mais chaque chose en son temps : si vous comptez utiliser Persona sur votre site, s'il vous plaît, prenez un moment pour vous inscrire sur la liste de diffusion&nbsp;<a href="https://mail.mozilla.org/listinfo/persona-notices">Persona notices</a>. Elle est à faible trafic, étant uniquement utilisée pour annoncer les changemments et les problème de sécurité qui pourraient affecter votre site.</p>
<h2 id="Premi.C3.A8re_.C3.A9tape_.3A_Inclure_la_librairie_Persona">Étape 1 : Inclure la librairie Persona</h2>
<p>Persona est conçu pour ne pas être lié à un navigateur en particulier et fonctionne bien dans <a href="https://developer.mozilla.org/docs/persona/Browser_compatibility">les principaux navigateurs de bureau et mobiles</a>.</p>
<p><span style="line-height: inherit;">Dans le futur nous espérons que les navigateurs fourniront un support natif de Persona, mais en attendant nous fournissons une librairie JavaScript qui implémente pleinement l'interface et l'API client du protocole. En incluant cette librairie, vos utilisateurs seront en mesure de se connecter avec Persona, que leur navigateur en ait un support natif ou non.</span></p>
<p>Pour inclure la librairie JavaScript Persona, vous pouvez placer cette balise &nbsp;<code>script</code> dans l'entête de vos pages :</p>
<pre class="brush: html;">
&lt;script src="https://login.persona.org/include.js"&gt;&lt;/script&gt;
</pre>
<p>Vous <strong>devez</strong> inclure ceci dans toutes les pages qui utilisent les fonctions de&nbsp;{{ domxref("navigator.id") }}. Persona étant toujours en développement, il est déconseillé d'héberger vous-même une copie du fichier&nbsp;<code>include.js</code>.</p>
<h2 id="Etape_2.3A_Ajoutez_des_boutons_de_connexion_et_de_d.C3.A9connexion">Etape 2: Ajoutez des boutons de connexion et de déconnexion</h2>
<p>Persona étant conçu comme une API DOM, vous devez appeler des fonctions quand un utilisateur clique sur un bouton de connexion ou de déconnexion sur votre site. Pour ouvrir la boîte de dialogue Persona et demander à l'utilisateur de se connecter, vous devez appeler {{ domxref("navigator.id.request()") }}. Pour la déconnexion, appelez {{ domxref("navigator.id.logout()") }}.</p>
<p>Par exemple :</p>
<pre class="brush: js;">
var signinLink = document.getElementById('signin');
if (signinLink) {
  signinLink.onclick = function() { navigator.id.request(); };
};

var signoutLink = document.getElementById('signout');
if (signoutLink) {
  signoutLink.onclick = function() { navigator.id.logout(); };
};
</pre>
<p>À quoi devraient ressembler ces boutons ? Consultez notres page de&nbsp;<a href="https://developer.mozilla.org/docs/persona/branding">ressources graphiques</a>&nbsp;pour des exemple complets basés sur du CSS !</p>
<h2 id="Step_3.3A_G.C3.A9rez_les_actions_de_connexion_et_de_d.C3.A9connexion">Step 3: Gérez les actions de connexion et de déconnexion</h2>
<p>Afin que Persona puisse fonctionner, vous devez lui dire quoi faire lorsqu'un utilisateur se connecte ou se déconnecte. Pour cela, appelez la fonction {{ domxref("navigator.id.watch()") }} et passez lui trois paramètres :</p>
<ol>
  <li>
    <p>L'adresse email de l'utilisateur actuellement connecté à votre site depuis cet ordinateur, ou <code>null</code> si aucun utilisateur n'est connecté. Par exemple, vous pouvez consulter un cookie du navigateur pour déterminer qui est connecté.</p>
  </li>
  <li>
    <p>Une fonction à appeler lorsqu'une action&nbsp;<code>onlogin</code> est déclenchée. Cette fonction reçoit un seul paramètre, une "assertion d'identité" qui doit être vérifiée.</p>
  </li>
  <li>
    <p>Une fonction à appeler lorsqu'une action&nbsp;<code>onlogout</code> est déclenchée. Cette fonction ne reçoit aucun paramètre.</p>
  </li>
</ol>
<div class="note style-wrap">
  <p><strong>Note:</strong>&nbsp;Vous devez toujours inclure à la fois&nbsp;<code>onlogin</code> et&nbsp;<code>onlogout</code>&nbsp;lorsque vous appelez {{ domxref("navigator.id.watch()") }}.</p>
</div>
<p>Par exemple, si vous pensez que Bob est connecté à votre site, vous pourriez faire ceci :</p>
<pre class="brush: js;">
var currentUser = 'bob@example.com';

navigator.id.watch({
  loggedInEmail: currentUser,
  onlogin: function(assertion) {
    // A user has logged in! Here you need to:
    // 1. Send the assertion to your backend for verification and to create a session.
    // 2. Update your UI.
    $.ajax({
      type: 'POST',
      url: '/auth/login', // This is a URL on your website.
      data: {assertion: assertion},
      success: function(res, status, xhr) { window.location.reload(); },
      error: function(res, status, xhr) { alert("login failure" + res); }
    });
  },
  onlogout: function() {
    // A user has logged out! Here you need to:
    // Tear down the user's session by redirecting the user or making a call to your backend.
    $.ajax({
      type: 'POST',
      url: '/auth/logout', // This is a URL on your website.
      success: function(res, status, xhr) { window.location.reload(); },
      error: function(res, status, xhr) { alert("logout failure" + res); }
    });
  }
});
</pre>
<p>Dans cet exemple,&nbsp;<code>onlogin</code>&nbsp;et&nbsp;<code>onlogout</code>&nbsp;sont tous deux implémentés en effectuant des requêtes&nbsp;<code>POST</code>&nbsp;asynchrones vers le backend de votre site. Le backend effectue ensuite la connexion ou la déconnexion de l'utilisateur, généralement en créant ou en effaçant des informations dans un cookie de session. Ensuite, si tout fonctionne bien, la page se recharge afin de prendre en compte le nouvel état de connexion.</p>
<p>Bien entendu vous pouvez utiliser des requêtes AJAX pour implémenter cela sans recharger la page ni rediriger l'utilisateur, mais cela ne fait pas partie du périmètre de ce tutoriel.</p>
<p>Voici un autre exemple, cette fois-ci sans utiliser jQuery.</p>
<pre class="brush: js;">
function simpleXhrSentinel(xhr) {
    return function() {
        if (xhr.readyState == 4) {
            if (xhr.status == 200)
                // reload page to reflect new login state
                window.location.reload();
            else
                alert("XMLHttpRequest error: " + xhr.status); } } }
 
function verifyAssertion(assertion) {
    // Votre backend doit retourner un status HTTP 200 pour indiquer
    // que la vérification de l'adresse email de l'utilisateur a été effectuée
    // avec succès et doit associer currentUser à cette adresse lorsque
    // la page est rechargée
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/xhr/sign-in", true);
    xhr.send(assertion); // for verification by your backend
    xhr.onreadystatechange = simpleXhrSentinel(xhr); }
 
function signoutUser() {
    // Vous devez retourner un code de statut 200 pour indiquer que
    // la déconnexion a été effectuée avec succès (généralement en réinitialisant
    // une ou plusieurs variables de session) et associer currentUser à 'null'
    // lorsque la page sera rechargée
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "/xhr/sign-out", true);
    xhr.send(null);
    xhr.onreadystatechange = simpleXhrSentinel(xhr); }
 
// Go!
navigator.id.watch( {
    loggedInUser: currentUser,
         onlogin: verifyAssertion,
        onlogout: signoutUser } );</pre>
<p>Vous <strong>devez</strong> appeler navigator.id.watch() sur toutes les pages comprenant un bouton de connexion ou de déconnexion. Pour gérer les améliorations de Persona comme la connexion automatique et la déconnexion globale de vos utilisateurs, <strong>il est conseillé</strong>&nbsp;d'appeler cette fonction sur toutes les pages de votre site.</p>
<h2 id="Etape_4_.3A_V.C3.A9rifiez_les_identifiants_de_l'utilisateur">Etape 4 : Vérifiez les identifiants de l'utilisateur</h2>
<p>Plutôt qu'un mot de passe, Persona utilise des "assertions d'identité" qui sont une sorte de mot de passe à usage unique, lié à un seul site et combiné à l'adresse email de l'utilisateur. Lorsqu'un utilisateur désire se connecter, votre fonction de callback&nbsp;<code>onlogin</code>&nbsp;sera appelée et recevra en paramètre une assertion de cet utilisateur. Avant d'autoriser la connexion, vous devez vérifier la validité de cette assertion.</p>
<p>Il est <em>extrêmement important</em> que vous vérifiiez cette assertion sur votre serveur et non en JavaScript (qui s'exécute dans le navigateur de votre utilisateur), car cela serait trop facile à contourner. L'exemple ci-dessous confie l'assertion au backend du site en utilisant le helper jQuery&nbsp;<code>$.ajax()</code>&nbsp;pour effectuer un&nbsp;<code>POST</code>&nbsp;de celle-ci vers&nbsp;<code>/api/login</code>.</p>
<p>Une fois que le serveur dispose d'une assertion, comment la vérifier ? Le moyen le plus simple est d'utiliser un helper fourni par Mozilla. Effectuez un simple&nbsp;<code>POST</code>&nbsp;de l'assertion vers&nbsp;<code>https://verifier.login.persona.org/verify</code> avec deux paramètres :</p>
<ol>
  <li><code>assertion</code>: L'assertion d'identité fournie par l'utilisateur.</li>
  <li><code>audience</code>: Le nom de domaine et le port de votre site web. Vous devez coder cette valeur en dur dans votre backend ; ne la composez pas en fonction d'une quelconque donnée fournie par l'utilisateur.</li>
</ol>
<p>Par exemple, si vous êtes&nbsp;<code>example.com</code>, vous pouvez utiliser la ligne de commande pour tester une assertion avec :</p>
<pre class="brush: bash;">
$ curl -d "assertion=&lt;ASSERTION&gt;&amp;audience=https://example.com:443" "https://verifier.login.persona.org/verify"
</pre>
<p>Si elle est valide, vous recevrez une réponse en JSON comme celle-ci :</p>
<pre class="brush: js;">
{
  "status": "okay",
  "email": "bob@eyedee.me",
  "audience": "https://example.com:443",
  "expires": 1308859352261,
  "issuer": "eyedee.me"
}
</pre>
<p>Pour en apprendre plus à propos du service de vérification, lisez&nbsp;<a href="https://developer.mozilla.org/en-US/docs/BrowserID/Remote_Verification_API">The Verification Service API</a>. Un exemple d'implémentation de&nbsp;<code>/api/login</code> utilisant&nbsp;<a href="http://python.org/">Python</a>, le framework web&nbsp;<a href="http://flask.pocoo.org/">Flask</a>, et la librairie HTTP&nbsp;<a href="http://python-requests.org">Requests</a>&nbsp;ressemblerait à ça :</p>
<pre class="brush: python;">
@app.route('/api/login', methods=['POST'])
def login():
    # La requête doit avoir une assertion à vérifier
    if 'assertion' not in request.form:
        abort(400)

    # Envoyer l'assertion au service de vérification de Mozilla.
    data = {'assertion': request.form['assertion'], 'audience': 'https://example.com:443'}
    resp = requests.post('https://verifier.login.persona.org/verify', data=data)

    # Le vérificateur a-t-il répondu ?
    if resp.ok:
        # Décoder la réponse
        verification_data = json.loads(resp.content)

        # Si l'assertion est valide
        if verification_data['status'] == 'okay':
            # Connecter l'utilisateur en lui envoyant un cookie de session sécurisé
            session.update({'email': verification_data['email']})
            return resp.content

    # Oups, quelque chose a échoué. Abandon.
    abort(500)
</pre>
<p>La gestion de session est probablement très similaire à votre système de connexion existant. Le premier grand changement est de vérifier l'identité de l'utilisateur en vérifiant une assertion plutôt que son mot de passe. L'autre grand changement est de s'assurer que l'adresse email de l'utilisateur est disponible pour la passer dans le paramètre&nbsp;<code>loggedInEmail</code> de {{ domxref("navigator.id.watch()") }}.</p>
<p>La déconnexion est simple : vous n'avez qu'à effacer le cookie de session de l'utilisateur.</p>
<h2 id="Step_5.3A_Consultez_les_bonnes_pratiques">Step 5: Consultez les bonnes pratiques</h2>
<p>Une fois que tout fonctionne et que vous vous êtez connecté et déconnecté avec succès de votre site, vous devriez prendre un moment pour consulter les <a href="https://developer.mozilla.org/docs/BrowserID/Security_Considerations">bonnes pratiques</a>&nbsp;pour utiliser Persona de manière sûre et sécurisée.</p>
<p>Si vous construisez un site de production, vous devriez écrire des tests d'intégration qui simulent la connexion et la déconnexion d'un utilisateur à votre site en utilisant BrowserID. Pour faciliter ces actions dans Selenium, nous vous conseillons la librairie&nbsp;<a href="https://github.com/mozilla/bidpom" title="https://github.com/mozilla/bidpom">bidpom</a>. Les sites <a href="https://mockmyid.com/" title="https://mockmyid.com/">mockmyid.com</a>&nbsp;et&nbsp;<a href="http://personatestuser.org" title="http://personatestuser.org">personatestuser.org</a> peuvent également s'avérer utiles.</p>
<p>Enfin, n'oubliez pas de vous inscrire à la<span style="line-height: inherit;">&nbsp;liste de difussion&nbsp;</span><a href="https://mail.mozilla.org/listinfo/persona-notices" style="line-height: inherit;">Persona notices</a><span style="line-height: inherit;"> afin d'être informé des failles de sécurité ou de changements incompatibles avec de précédentes versions de l'API Persona. Cette liste a un taffic extrêmement faible : elle est uniquement utilisée pour annoncer des changements qui pourraient avoir un impact négatif sur votre site.</span></p>
<p>&nbsp;</p>
Revenir à cette révision