国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Express.js實現(xiàn)注冊和登錄

這篇具有很好參考價值的文章主要介紹了Express.js實現(xiàn)注冊和登錄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?注冊接口

注冊接口,用戶提供必要的注冊信息(如用戶名和密碼),服務(wù)器對用戶進行驗證并創(chuàng)建用戶賬號

// 注冊接口
app.post('/register', async (req, res) => {
  try {
    const { username, email, password } = req.body;

    // 檢查用戶名和郵箱是否已被注冊
    if (users.some(user => user.username === username)) {
      return res.status(400).json({ error: '用戶名已被注冊' });
    }

    if (users.some(user => user.email === email)) {
      return res.status(400).json({ error: '郵箱已被注冊' });
    }

    // 使用bcrypt對密碼進行哈希處理
    const hashedPassword = await bcrypt.hash(password, 10);

    // 創(chuàng)建新用戶對象
    const user = {
      id: Date.now().toString(),
      username,
      email,
      password: hashedPassword
    };

    // 將用戶信息存儲到數(shù)據(jù)庫
    users.push(user);

    // 創(chuàng)建訪問令牌
    const token = jwt.sign({ userId: user.id }, 'secretKey');

    res.status(201).json({ message: '注冊成功', token });
  } catch (error) {
    res.status(500).json({ error: '注冊失敗' });
  }
});

登錄接口

登錄接口,用戶提供登錄憑據(jù)(如用戶名和密碼),服務(wù)器驗證憑據(jù)的正確性并頒發(fā)訪問令牌

app.post('/login', (req, res) => {
  // 獲取登錄憑據(jù)
  const { username, password } = req.body;
  // 在此處進行用戶名和密碼的驗證,如檢查用戶名是否存在、密碼是否匹配等;驗證成功,頒發(fā)訪問令牌;
  const token = createAccessToken(username);

  // 將訪問令牌寫入 Cookie
  res.cookie('token', token, {
    httpOnly: true,
    secure: true, // 僅在 HTTPS 連接時發(fā)送 Cookie
    sameSite: 'Strict' // 限制跨站點訪問,提高安全性
  });

  // 返回登錄成功的響應(yīng)
  res.status(200).json({ message: '登錄成功' });
});

校驗接口?

校驗登錄狀態(tài),服務(wù)器將校驗請求中的登錄憑據(jù)(Cookie 或訪問令牌)的有效性

app.get('/protected', (req, res) => {
  // 從請求的 Cookie 中提取訪問令牌
  const token = req.cookies.token;
  // 或從請求頭部中提取訪問令牌,如果采用前端存儲和發(fā)送訪問令牌方式;示例代碼,需根據(jù)實際情況進行解析 const token = req.headers.authorization.split(' ')[1];

  // 檢查訪問令牌的有效性
  if (!token) {
    return res.status(401).json({ error: '未提供訪問令牌' });
  }

  try {
    // 驗證訪問令牌
    const decoded = verifyAccessToken(token);

    // 在此處進行更詳細(xì)的用戶權(quán)限校驗等操作

    // 返回受保護資源
    res.status(200).json({ message: '訪問受保護資源成功' });
  } catch (error) {
    res.status(401).json({ error: '無效的訪問令牌' });
  }
});

前端存儲和發(fā)送訪問令牌

// 從存儲中獲取訪問令牌
const token = localStorage.getItem('token');

// 設(shè)置請求頭部
const headers = {
  'Authorization': `Bearer ${token}`
};

// 發(fā)送請求時,手動設(shè)置請求頭部
fetch('/protected', { headers });

使用前端的?localStorage?來存儲訪問令牌,并在發(fā)送請求時手動設(shè)置了請求頭部的?Authorization?字段。

注意:無論使用哪種方式,都需要在服務(wù)器端進行訪問令牌的驗證和安全性檢查,以確保請求的合法性和保護用戶數(shù)據(jù)的安全。文章來源地址http://www.zghlxwxcb.cn/news/detail-835003.html

到了這里,關(guān)于Express.js實現(xiàn)注冊和登錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Node.js npm V8 React Express的運行配合關(guān)系:構(gòu)建JavaScript應(yīng)用的基石

    目錄 Node.js 和 V8 引擎 Node.js 和 npm LTS(Long Term Support) React Node.js的作用 Express Node.js 和 V8 引擎 Node.js 使用 Google 的 V8 JavaScript 引擎 來執(zhí)行 JavaScript 代碼。V8 是一個高性能的 JavaScript 和 WebAssembly 引擎,用于在 Google Chrome 瀏覽器和 Node.js 中運行 JavaScript。 V8 引擎的更新 通常包括

    2024年03月12日
    瀏覽(19)
  • Express實戰(zhàn)個人訂閱號實現(xiàn)網(wǎng)站登錄

    Express實戰(zhàn)個人訂閱號實現(xiàn)網(wǎng)站登錄

    今天我們來實現(xiàn)一個使用個人訂閱號實現(xiàn)網(wǎng)站的功能,后端使用的是 express 。其它框架原理基本一致,只是定義路由或返回響應(yīng)數(shù)據(jù)部分代碼跟 express 有所出入。先來一波效果圖: 20 年 3 月在掘金寫過一篇文章,介紹了使用 express 開發(fā)微信公眾號的案例: 原文地址。當(dāng)時使

    2024年02月05日
    瀏覽(22)
  • 用前端的語言寫后端——Node.js之Express

    Express 是一種流行的模型視圖控制器(MVC)Node.js框架,具有快速、極簡和靈活的優(yōu)點,為Web和移動應(yīng)用程序開發(fā)提供了強大的功能集合。 最受歡迎的Node.js框架! 安裝Node.js(你肯定已經(jīng)安裝好了Node.js,這點我們無需多言) 為你的應(yīng)用創(chuàng)建一個目錄,進入此目錄并以此目錄為你

    2024年03月21日
    瀏覽(32)
  • 安全開發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實現(xiàn)&審計&WebPack打包器&第三方庫JQuery&安裝使用&安全檢測

    安全開發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實現(xiàn)&審計&WebPack打包器&第三方庫JQuery&安裝使用&安全檢測

    Node.js是運行在服務(wù)端的JavaScript 文檔參考:https://www.w3cschool.cn/nodejs/ Nodejs安裝:https://nodejs.org/en 三方庫安裝 express:Express是一個簡潔而靈活的node.js Web應(yīng)用框架 body-parser:node.js中間件,用于處理 JSON, Raw, Text和URL編碼的數(shù)據(jù)。 cookie-parser:這就是一個解析Cookie的工具。通過re

    2024年02月11日
    瀏覽(58)
  • Node.js: express + MySQL實現(xiàn)修改密碼

    Node.js: express + MySQL實現(xiàn)修改密碼

    ? ? ? ? 實現(xiàn)修改密碼,本篇文章實現(xiàn)修改密碼只考慮以下幾個方面: ? ? ? ? (1),獲取舊密碼 ? ? ? ? (2),獲取新密碼 ? ? ? ? (3),將獲取到的舊密碼與數(shù)據(jù)庫中的密碼進行比對(避免修改錯用戶) ? ? ? ? (4),新密碼與進密碼進行比對,新密碼和舊密碼不

    2024年02月16日
    瀏覽(20)
  • node.js(express.js)+mysql實現(xiàn)新增文章分類功能

    node.js(express.js)+mysql實現(xiàn)新增文章分類功能

    表單驗證 定義路由 實現(xiàn)新增文章分類的功能的函數(shù) 結(jié)果

    2024年01月23日
    瀏覽(33)
  • Node.js: express + MySQL + Vue實現(xiàn)圖片上傳

    Node.js: express + MySQL + Vue實現(xiàn)圖片上傳

    ? ? ? ? 前段時間用Node.js: express + MySQL + Vue + element組件做了一個小項目,記錄一下圖片上傳的實現(xiàn)。 ? ? ? ? 將圖片存入數(shù)據(jù)庫有兩種方法: ? ? ? ? ? ? ? ? 1,將圖片以二進制流的方式存入數(shù)據(jù)庫(數(shù)據(jù)庫搬家容易,比較安全,但數(shù)據(jù)庫空間的消耗大,訪問會比較緩慢)

    2024年02月07日
    瀏覽(35)
  • python web 開發(fā)與 Node.js + Express 創(chuàng)建web服務(wù)器入門

    目錄 1.?Node.js + Express 框架簡介 2??Node.js + Express 和 Python?創(chuàng)建web服務(wù)器的對比 3 使用 Node.js + Express 創(chuàng)建web服務(wù)器示例 3.1?Node.js + Express 下載安裝 3.2 使用Node.js + Express 創(chuàng)建 web服務(wù)器流程 ????????Node.js + Express 是一種常用于構(gòu)建 Web 應(yīng)用程序的開發(fā)堆棧,其中 Node.js 是運行

    2024年02月10日
    瀏覽(29)
  • Node.js基本概念、特點、用途和常用模塊,以及Express框架開發(fā)一個web應(yīng)用

    Node.js基本概念、特點、用途和常用模塊,以及Express框架開發(fā)一個web應(yīng)用

    目錄 一、Node.js的基本概念和特點 二、Node.js的用途 三、Node.js的常用模塊 四、使用Node.js進行Web開發(fā) 1. 安裝Node.js 2. PyCharm配置Node.js 3. 使用http庫編寫一個web服務(wù) 4. 使用Express框架構(gòu)建Web應(yīng)用程序 5. 調(diào)試代碼 6. 發(fā)布應(yīng)用程序 參考文章 ?Node.js系列文章推薦閱讀: JavaScript匿名函

    2024年02月07日
    瀏覽(26)
  • 【Node.js實戰(zhàn)】一文帶你開發(fā)博客項目之Express重構(gòu)(博客的增刪查改、morgan寫日志)

    【Node.js實戰(zhàn)】一文帶你開發(fā)博客項目之Express重構(gòu)(博客的增刪查改、morgan寫日志)

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學(xué)習(xí)方向: 主攻前端方向,也會涉及到服務(wù)端 ?? 個人狀態(tài): 在校大學(xué)生一枚,已拿多個前端 offer(秋招) ?? 未來打算: 為中國的工業(yè)軟件事業(yè)效力n年 ?? 推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2Vue3項目實戰(zhàn) ??

    2024年02月06日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包