Envoyer les journaux d’erreurs à un service externe
Utiliser des objets d’erreur dans les règles
Error, comme dans :
return callback(new Error('some description'));
Pour en savoir plus, veuillez consulter Classe : Ereurs sous nodejs.org.
Alternativement, une instance spécifique à Auth0 UnauthorizedError peut être retournée. Cela déclenchera une condition d’erreur unauthorized avec la description de l’erreur fournie, laquelle sera renvoyée à l’application ayant initié l’authentification, c’est-à-dire celle à l’origine de la redirection vers le point de terminaison /authorize Cela permet à une application d’offrir une capacité de nouvelle tentative conditionnelle et vous permet d’implémenter des règles pour refuser l’accès en fonction de certaines conditions :
return callback(new UnauthorizedError('some description'), user, context);
Utilisez des descriptions de codes d’erreur significatives
UnauthorizedError renvoie uniquement la description fournie. Pour utiliser un traitement spécifique pour les conditions d’erreur non autorisées, nous vous recommandons de formater vos descriptions pour inclure des informations de code d’erreur facilement accessibles, par exemple :
'[00043] - ma description spécifique d’erreur')
Gestion des exceptions
catch lors de l’utilisation du traitement d’objets Promise. Le traitement d’objets Promise peut également être efficace pour la gestion des erreurs lors d’opérations non-asynchrones. Comme illustré ci-dessous, un objet Promise peut être utilisé pour encapsuler, par exemple, un appel de fonction synchrone, ce qui facilite la mise en œuvre de la gestion des erreurs en cascade via l’utilisation du chaînage de Promise et autres. Pour en savoir plus sur l’objet Promise, veuillez consulter Promise dans MDN Web Docs. Pour en savoir plus sur le chaînage de Promise, veuillez consulter Gestion des erreurs avec Promise sur javascript.info.
try...catch (essayer...attraper) pour gérer les exceptions JavaScript qui se produisent pendant le fonctionnement synchrone. Pour en savoir plus, veuillez consulter try...catch dans MDN Web Docs.La configuration de ce type de gestion des exceptions peut engendrer des coûts en termes de performances. Il est donc recommandé de l’utiliser avec modération afin de maintenir des performances optimales pour vos règles. Une approche plus pragmatique consiste à mettre en œuvre un traitement qui empêche les exceptions de se produire plutôt que de les gérer une fois qu’elles se sont produites. Pour en savoir plus sur les meilleures pratiques, veuillez consulter Les meilleures pratiques en matière de performance.
Éviter les objets non initialisés dans les règles
user.user_metadata = user.user_metadata || {})
Dans une règle, prendre des mesures pour empêcher qu’une exception ne se produise est une bonne pratique et est généralement moins coûteuse en termes de performances et d’utilisation des ressources que la mise en œuvre de la gestion des exceptions.