カスタムデータベースのトラブルシューティング
カスタムデータベース接続で返されるエラーは、トラブルシューティングのために使用できます。また、スクリプト用のベーシックなトラブルシューティングの手順もご紹介します。
エラーの種類
データベース接続からは、さまざまな種類のエラーが返されます。
エラー | ログインスクリプト | 説明 |
---|---|---|
new WrongUsernameOrPasswordError(<email or user_id>, <message>) |
ログイン | ユーザーの資格情報が無効な場合に発生します。引数が渡されないか、最初の引数が不正な場合には、fu イベント(無効なユーザー名またはメールアドレス)としてuser_id に空の文字列を含むエラーがログに記録されます。渡された最初の引数が正しい場合には、fp イベント(ユーザーが存在し、パスワードが不正)としてuser_id にauth0|<first argument> を含むエラーがログに記録されます。詳細については、「ログイベントタイプのコード」を参照してください。 |
new ValidationError(<user_exists>, <message>) |
作成 | ユーザーがすでにデータベースに存在する場合に発生します。 |
callback(<null>,<false>) |
パスワード変更 | ユーザーのパスワードが更新されなかった場合に発生します。 |
callback(<null>) |
ユーザー取得 | ユーザーが見つからなかった場合に発生します。 |
new UnauthorizedError(<message>) |
すべて | データベースへのアクセス中に問題が起きた場合に発生します。カスタムデータベースからフロントエンドにエラーを戻して伝えるときに推奨される方法です。 |
new Error(<message>) |
すべて | データベースへのアクセス中に問題が起きた場合に発生します。 |
error code: auth0_idp_error; user already exists |
作成 | 独自のレガシーIDストアまたはAuth0に既存のユーザーを作成しようとすると、レガシーIDストアで発生します。 |
error code: auth0_idp_error; user already exists |
削除 | カスタムデータベーススクリプトを使ってユーザーを削除しようとすると、レガシーIDストアで発生します。次のエラーで表されることもあります:Error! There was a problem deleting user@example.com (エラー!user@example.comの削除中に問題が発生しました)またはSandbox Error: Please implement the Delete script for this database connection at https://manage.auth0.com/#/connections/database (Sandboxエラー:このデータベース接続に削除スクリプトを実装してください。) |
エラーを返す
エラーを返すには、callback関数を呼び出して、errorを最初のパラメーターとして渡します。
callback(error);
Was this helpful?
/
例:
callback(new ValidationError('email-too-long', 'Email is too long.'));
Was this helpful?
/
Lockの使用時にエラーを返す
ロックの使用では、辞書に追加することで、表示されるエラーメッセージをカスタマイズすることができます。
エラーのトラブルシューティング
スクリプトをテストするには、[Try(試す)]ボタンを使用します。
期待していた結果が得られなかった場合や、エラーを受け取った場合には、Real-time Webtask Logs(リアルタイムWebtaskログ)拡張機能をインストールして、スクリプトにconsole.log()
ステートメントを使ってから、接続をもう一度試してください。[Real-time Webtask Logs(リアルタイムWebtaskログ)]ウィンドウにconsole.log()
の出力が表示されます。
ユーザーをインポート・作成・削除するアクションスクリプトを使用すると、エラーが起きることがあります。console.logs
を使って、エラーがアクションスクリプトの使用に起因するかどうかを調べます。詳細については、「カスタムデータベースのアクションスクリプトテンプレート」をお読みください。