これにはいくつかの異なる部分があります。
1)。電子メールで検証されたルールを有効にしましたか? (それはAuth0ダッシュボードから利用できるテンプレートです - 。
function forceEmailVerification(user, context, callback) {
console.log("force-email-verification");
if(context.connection !== "MyDB") {
return callback(null, user, context);
}
if (!user.email_verified) {
return callback(new UnauthorizedError('Please verify your email before logging in.'));
} else {
return callback(null, user, context);
}
}
メールが確認されていない場合は効果的ルールパイプラインで例外が発生しますそれはあなたが2つのクエリのparamsとして提供callbackUrl上のアプリケーションにエラーが返されます - error
とerror_description
。これはあなた次第です - ここにはsample Node.js applicationがあります。これはどのように動作するかを具体的に説明するために書かれています - サンプルでは、私はエラーとerror_descriptionを確認するためにいくつかの高速ミドルウェアを使用しています。検出された。
2)。必要な場合にのみ、電子メール確認メールを明示的にトリガーすることもできます。 https://{{tenant}}.auth0.com/api/users/{{user_id}}/send_verification_email
エンドポイントへのPOSTリクエストで、Auth0 APIv1トークン(および空のボディ)を持つ認証ベアラヘッダーを渡します。トークンは、フォームのボディを渡すhttps://{{tenant}}.auth0.com/oauth/token
エンドポイントにPOSTリクエストを行うことによって得ることができる。
{
"client_id": "{GLOBAL CLIENT ID}",
"client_secret": "{GLOBAL CLIENT SECRET}",
"grant_type": "client_credentials"
}
あなたは、アカウント設定でグローバルクライアントIDとクライアントシークレットを取得することができます - Auth0ダッシュボードから>高度な。 SPAアプリケーションなどに秘密を保存しないでください。このエンドポイントを使用するのは、クライアント機密/信頼アプリケーション(たとえば、所有する従来のMVC Webアプリケーション)からのみ行う必要があります。
これが役に立ちます。不明な点があればコメントを残してください。
ありがとうございました。私は今これを試しています! – mayk93