2017-09-15 104 views
1

我正在使用auth0。Auth0電子郵件確認,如何處理註冊gracefuly

我的應用需要用戶確認他們的電子郵件。

當用戶註冊時,他收到此警報:

Error: unauthorized. Check the console for further details. 

這是因爲用戶還沒有驗證他的電子郵件。

如何「捕捉」此事件/警報以便將用戶重定向到我選擇的視圖?

謝謝你的幫助

回答

0

這裏有幾個不同的部分。

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); 
    } 
} 

這有效地提高了在規則管道異常,如果電子郵件尚未證實此事將錯誤返回到應用程序的callbackUrl你提供兩個查詢參數 - errorerror_description。然後由您決定如何處理這個問題 - 這裏是我專門寫的一個sample Node.js application以說明這是如何工作的 - 在示例中,我使用了一些快速中間件來檢查錯誤和error_description並轉發到Custom controller/view if檢測到

2)。只有在需要時,您纔可以明確觸發電子郵件驗證電子郵件。這是一個到https://{{tenant}}.auth0.com/api/users/{{user_id}}/send_verification_email 端點的POST請求,傳遞帶有Auth0 APIv1標記(和空體)的Authorization Bearer標頭。令牌可通過使POST請求https://{{tenant}}.auth0.com/oauth/token端點穿過體形式獲得:

{ 
    "client_id": "{GLOBAL CLIENT ID}", 
    "client_secret": "{GLOBAL CLIENT SECRET}", 
    "grant_type": "client_credentials" 
} 

你可以得到全球客戶ID和客戶端密鑰下帳戶設置 - 從Auth0儀表板>高級。請不要在SPA應用程序等存儲任何祕密 - 使用此端點只能從客戶機密/可信應用程序(例如您擁有的傳統MVC web應用程序)完成。

希望這會有所幫助。如果有不明之處,請留下意見。

+0

謝謝你的回答。我正在嘗試這個了! – mayk93

相關問題