Moralis 電子郵件認證

2022-05-09 14:50 更新

Moralis 允許您使用電子郵件和密碼對用戶進行身份驗證。 這些個人資料詳細信息可以稍后與 web3 錢包相關聯(lián)。

使用用戶名注冊

也可以通過用戶名和密碼在沒有錢包的情況下進行身份驗證。 這利用了內(nèi)置的 ?Moralis.User? 類。

這個類擴展了 ?Moralis.Object? 一些額外的屬性:

  • ?username?:用戶的用戶名(必填)
  • ?password?:用戶的密碼(注冊時需要)
  • ?email?:用戶的郵箱地址(可選)

使用 ?Moralis.User.signUp(username, password) ?創(chuàng)建新用戶

const user = new Moralis.User();
user.set("username", "my name");
user.set("password", "my pass");
user.set("email", "email@example.com");

// other fields can be set just like with Moralis.Object
user.set("phone", "415-392-0202");
try {
  await user.signUp();
  // Hooray! Let them use the app now.
} catch (error) {
  // Show the error message somewhere and let the user try again.
  alert("Error: " + error.code + " " + error.message);
}

請注意,我們使用了?signUp ?方法,而不是?save ?方法。 使用用戶名創(chuàng)建的新 ?Moralis.User? 應始終使用 ?signUp ?方法創(chuàng)建。 可以通過調(diào)用 ?save ?來完成對用戶的后續(xù)更新

數(shù)據(jù)庫中的用戶

此調(diào)用將在您的 Moralis 數(shù)據(jù)庫中異步創(chuàng)建一個新用戶。 在它這樣做之前,它還

  • 檢查以確保用戶名和電子郵件都是唯一的。
  • 它使用 ?bcrypt ?安全地對云中的密碼進行哈希處理。

我們永遠不會以明文形式存儲密碼,也不會以明文形式將密碼傳送回客戶端。

處理注冊錯誤

如果注冊不成功,您應該閱讀返回的錯誤對象,但在大多數(shù)情況下,這是因為用戶名或電子郵件已被其他用戶使用。 您應該清楚地向您的用戶傳達這一點,并要求他們嘗試不同的用戶名。

您可以自由地使用電子郵件地址作為用戶名,如果是這樣,只需要求您的用戶在用戶名屬性中輸入他們的電子郵件 - ?Moralis.User? 將正常工作。

使用用戶名登錄

注冊后可以允許用戶通過?logIn?方法登錄

const user = await Moralis.User.logIn("myname", "mypass");
// Do stuff after successful login.

默認情況下,SDK 使用 GET HTTP 方法。 如果您想覆蓋它并改用 POST HTTP 方法,您可以在 options 參數(shù)中使用鍵 ?usePost ?傳遞一個可選的布爾屬性。

const user = await Moralis.User.logIn("myname", "mypass", { usePost: true });
// Do stuff after successful login.

驗證電子郵件

在應用程序的設置中啟用電子郵件驗證允許應用程序為已確認電子郵件地址的用戶保留部分體驗。

電子郵件驗證將 ?emailVerified ?鍵添加到 ?Moralis.User? 對象。 當設置或修改 ?Moralis.User? 的電子郵件時,?emailVerified ?設置為 ?false?。 ?Moralisthen ?通過電子郵件向用戶發(fā)送一個鏈接,該鏈接會將 ?emailVerified ?設置為 ?true?。

需要考慮三種 ?emailVerified ?狀態(tài):

  • ?true ?- 用戶通過單擊 Moralis 通過電子郵件發(fā)送給他們的鏈接來確認他或她的電子郵件地址。 首次創(chuàng)建用戶帳戶時,?Moralis.Users? 永遠不會具有真實值。
  • ?false ?- 用戶沒有通過單擊 Moralis 通過電子郵件發(fā)送給他們的鏈接來確認他/她的電子郵件地址。 如果 ?emailVerified ?為 ?false?,請考慮在 ?Moralis.User ?上調(diào)用 ?fetch?。
  • ?undefined (missing)?- 此 ?Moralis.User? 是在未設置電子郵件驗證時創(chuàng)建的,或者 ?Moralis.User? 在注冊時沒有電子郵件。

spaces_-MVStbACGLCycg7J5WQ2_uploads_git-blob-b700131cab5d674e18c77b957e346edceb55f434_Screenshot 2022-03-15 at 1

重置密碼

當您將密碼引入系統(tǒng)時,用戶會忘記它們。 在這種情況下,我們的圖書館提供了一種方法,讓他們通過發(fā)送帶有重置鏈接的電子郵件來安全地重置密碼。

要啟動密碼重置流程,請詢問用戶他們的電子郵件地址,然后致電:

Moralis.User.requestPasswordReset("email@example.com")
.then(() => {
  // Password reset request was sent successfully
}).catch((error) => {
  // Show the error message somewhere
  alert("Error: " + error.code + " " + error.message);
});

這將嘗試將給定的電子郵件與用戶的電子郵件或用戶名字段匹配,并向他們發(fā)送密碼重置電子郵件。 通過這樣做,您可以選擇讓用戶使用他們的電子郵件作為他們的用戶名,或者您可以單獨收集它并將其存儲在電子郵件字段中。

密碼重置流程如下:

  1. 用戶通過輸入電子郵件請求重置密碼。
  2. Moralis 會向他們的地址發(fā)送一封電子郵件,其中包含一個特殊的密碼重置鏈接。
  3. 用戶單擊重置鏈接并被定向到一個特殊的 Moralis 頁面,該頁面將允許他們輸入新密碼。
  4. 用戶輸入新密碼。 他們的密碼現(xiàn)在已重置為他們指定的值。

請注意,此流程中的消息將使用您在 Moralis 上創(chuàng)建此應用程序時指定的名稱引用您的應用程序。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號