簡體   English   中英

在 React.JS 和 Node.JS 中實現登錄系統

[英]Implementing login system in React.JS & Node.JS

我需要在 MERN 堆棧中實現一個登錄系統,其中將有三種類型的登錄。 1. 管理員登錄 2. 學生登錄 3. 教師登錄

管理員登錄將有一個預定義的用戶名和密碼(比如 admin 和 admin@123 響應),如果需要可以更改。只有當管理員從他的儀表板添加新學生或教員時,教師和學生才能登錄。學生和教職員工的用戶名將是學院的注冊號,密碼將是出生日期。

我遇到的所有教程都是關於注冊和身份驗證的,因為注冊不是這個項目的一部分,我想基本上知道我應該如何使用這個功能。

我使用 mongodb 作為數據庫。

你有很多事情在這里發生:

  1. 身份驗證:接受並檢查用戶名和密碼
  2. 授權:一旦用戶對自己進行了身份驗證,為她分配適當的權限級別(在您的情況下為管理員、教職員工、學生)。
  3. 注冊:在您的系統中,只有管理員才能注冊新用戶。 這與某些允許自行注冊的系統不同。 你的沒有,根據你的要求。

重要的安全提示,使用出生日期作為密碼是一個非常糟糕的主意。為什么?如果網絡蠕蟲闖入您的數據庫,他將擁有姓名和出生日期列表。這些對於竊取您的用戶的信息很有用身份。它們也被視為個人身份信息,因此它們受 GDPR 和《加利福尼亞消費者隱私法》的保護。但您沒有問過那個......)

讓我們一一考慮您的要求。

1-認證。 這是一個簡單的用戶名/密碼方案。 為此使用護照模塊及其本地策略。

2- 授權。 當您查找用戶時,還會查找她的權限級別(再次是管理員或教職員工或學生)。 Passport 為您的用戶提供會話 cookie,以便他們保持登錄狀態。

在您顯示任何頁面或接受來自用戶的任何 API 請求或表單發布之前,請檢查授權級別。 如果不允許用戶使用特定功能,請發回 403 錯誤消息,而不是顯示頁面或接受表單。

3-注冊。 您需要一個用於創建/替換/更新/刪除用戶的表單(稱為 CRUD 表單)。 此表單必須僅供您的管理員訪問。

順便說一句,所有這些都發生在您的節點/快速服務器上。 您的 React 客戶端必須簡單地隨每個請求傳遞通行證生成的會話 cookie,以便服務器可以查找用戶以檢索授權。

以這種結構化的方式考慮您的需求應該可以幫助您應用從各種在線教程中學到的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM