![](/img/trans.png)
[英]How to authentication React Front End with back-end Node.js Express-Sessions?
[英](Design question) How to decouple front- and back-end to protect routing (backend) code? (Node.js - Express - React)
內容:
我正在建立一個React網站,該網站從Google Sheets API提取信息並將特定的行格式化為數據可視化形式。 由於信息的敏感性,有些列我不想共享,幸運的是,有些方法只能共享指定的列,但這不是為什么我要詢問以下內容:
問題:
我想要一個Node API來處理來自React前端的請求,但是其代碼在客戶端的瀏覽器上不可用(例如,在構建期間創建的bundle.js文件中)。
澄清:我注意到,當在本地運行大多數Node-React應用程序示例並使用webpack構建它們時,
最終會得到一個
bundle.js文件,其中包含在頁面加載時傳遞給瀏覽器的Node請求處理代碼。
提案:
我需要部署兩個單獨的應用程序(一個用於Node,另一個用於React),還是可以將它們保持在一起而服務器代碼對客戶端不可見?
編輯后答案:
您最終得到一個bundle.js文件,其中包含在頁面加載時傳遞到瀏覽器的Node請求處理代碼。
這是不正確的。 我假定為請求處理代碼的代碼是客戶端請求調用代碼。
您可以添加一個簡單的身份驗證系統。 已經有大量的Node軟件包,因此無需自己實現。
具體來說,這將防止后端將敏感數據發送到未經授權的請求。
編輯:為澄清起見,在Node.js服務器上運行的代碼不會公開發送,它將在您的服務器上運行並將其輸出發送到前端。
編輯2:好像我誤解了你的問題。
如果您的代碼目前尚未解耦,則需要將其解耦。 React.js項目的所有代碼都發送到瀏覽器。 由於沒有后端可以處理任何種類的訪問邏輯,因此任何此類邏輯都必須在前端(React.js)中,可以很容易地繞過它。
它已經解耦了。 您無需執行任何操作 。
請注意,node.js服務器代碼的安全性取決於服務器配置,而不是node.js。 如果您通過未加密的文件共享或FTP訪問服務器,則您的節點服務器代碼仍然不安全。
即使使用加密,也要避免使用諸如SSL或TLSv1.0之類的協議(對於FTPS等,請使用TLSv1.3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.