Paramètres d’authentification Lock

Vous pouvez envoyer des paramètres lors du démarrage d’une connexion en les ajoutant à l’objet options. L’exemple ci-dessous ajoute un paramètre state dont la valeur est égale à 'foo'.

var options = {
  auth: {
    params: {state: 'foo'},
  }
};

Was this helpful?

/

L’exemple ci-dessus serait analogue au déclenchement de la connexion avec https://{yourDomain}/authorize?state=foo&....

Les paramètres suivants sont pris en charge : scope, device, nonce et state.

Paramètres pris en charge

scope {string}

var options = {
  auth: {
    params: {scope: 'openid email user_metadata app_metadata picture'},
  }
};

Was this helpful?

/

Différentes valeurs sont prises en charge pour le paramètre scope. Gardez à l’esprit que les JWT sont envoyés sur chaque demande d’API, il est donc souhaitable de les garder aussi petits que possible.

Dans Lock, la valeur par défaut du paramètre scope est openid profile email. Cette valeur minimale du paramètre scope est requise pour que la fonctionnalité La dernière fois que vous vous êtes connecté avec fonctionne correctement.

Exécuter Lock localement

Si vous ne spécifiez pas au moins la permission par défaut du openid profile email lorsque vous initialisez Lock, et que vous exécutez votre site Web à partir de http://localhost ou http://127.0.0.1, vous recevrez l’erreur suivante dans la console de votre navigateur :

Consent required. Lorsque vous utilisez la méthode getSSOData, l’utilisateur doit être authentifié avec la permission suivante : openid profile email

Cela ne se produira pas si vous exécutez votre application en production ou si vous spécifiez la permission openid profile email. Vous pouvez en lire davantage à ce sujet dans le document Consentement de l’utilisateur et applications tierces.

Pour plus d’informations sur les permissions, voir la page de documentation des permissions.

Exemple : récupérer un jeton

Dans Lock, si vous souhaitez recevoir un jeton avec la possibilité de récupérer les données de profil de l’utilisateur, vous devez ajouter le paramètre scope.

var options = {
  auth: {
    params: {
        scope: 'openid profile'
    }
  }
};

Was this helpful?

/

Il existe également une option de configuration connectionScopes pour Lock qui vous permet de spécifier des permissions sur n’importe quelle connexion spécifique. Cela sera utile si vous souhaitez commencer par un ensemble de permissions (définies sur le tableau de bord), et demander plus tard des autorisations ou des attributs supplémentaires à partir d’une connexion spécifique. Pour en savoir plus à ce sujet, consultez la page Options de configuration de Lock.

state {string}

Le paramètre state est une valeur d’état arbitraire qui sera maintenue à travers les redirections. Ce paramètre est utile pour atténuer les attaques XSRF et pour toute information contextuelle, par exemple, une URL de retour dont vous pourriez avoir besoin après le processus d’authentification. Si un paramètre state personnalisé n’est pas fourni, Lock en générera automatiquement un. Pour plus d’informations, consultez la section Paramètre state.

nombre aléatoire {string}

Le paramètre nonce est utilisé pour aider à prévenir les attaques par réinsertion et sera automatiquement généré par Lock si une valeur personnalisée n’est pas fournie.

device {string}

Le paramètre device définit le nom de l’appareil ou du navigateur demandant l’authentification.