亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

快速搭建Node.js(Express)用戶注冊、登錄以及授權的方法

2024-05-06 16:50:40
字體:
來源:轉載
供稿:網友

項目準備

  1. 建立一個文件夾,這里叫 EXPRESS-AUTH
  2. npm init -y

啟動服務

  1. 新建一個server.js 或者 app.js
  2. npm i express
  3. 開啟端口,啟動服務
// server.js// 引入 expressconst express = require('express')// 創建服務器應用程序const app = express()app.get('/user', async (req, res) => { res.send('hello node.js')})app.listen(3001, () => { console.log('http://localhost:3001')})

在命令行運行 nodemon ./server.js 命令啟動服務

注:nodemon 命令需要全局安裝 nodemon( npm install --global nodemon ), 在瀏覽器訪問/user時如下,則說明開啟成功

Node.js

實現簡單的 GET 請求接口

創建處理 get 請求的接口

app.get('/api/get', async (req, res) => { res.send('hello node.js')})

在vscode商店中下載 REST Client

Node.js

新建一個 test.http 文件測試接口,點擊 Send Request 發送請求

 

// test.http@url=http://localhost:3001/api### get {{url}}/user

Node.js

如上圖,get 請求成功

操作 MongoDB 數據庫

連接數據庫

  1. 安裝 mongodb 數據庫
  2. 在需要啟動的盤符根目錄下新建 data/db 文件夾
  3. 在命令行對應的盤符下輸入 mongod 命令,即可開啟服務
  4. 有需要可以下載NoSQLBooster for MongoDB軟件

建立數據庫模型

  • npm i mongoose
  • 新建 model.js 操作數據庫
// 引入 mongoose const mongoose = require('mongoose')// 連接數據庫,自動新建 ExpressAuth 庫mongoose.connect('mongodb://localhost:27017/ExpressAuth', { useNewUrlParser: true, useCreateIndex: true})// 建立用戶表const UserSchema = new mongoose.Schema({ username: { type: String, unique: true }, password: { type: String, }})// 建立用戶數據庫模型const User = mongoose.model('User', userSchema)module.exports = { User }

簡單的 POST 請求

創建處理 POST 請求的接口

// server.jsapp.post('/api/register', async (req, res) => { console.log(req.body); res.send('ok')})app.use(express.json()) // 設置后可以用 req.body 獲取 POST 傳入 data

設置 /api/register

###POST {{url}}/registerContent-Type: application/json{ "username": "user1", "password": "123456"}

注冊用戶

// server.jsapp.post('/api/register', async (req, res) => { // console.log(req.body); const user = await User.create({ username: req.body.username, password: req.body.password }) res.send(user)})

數據庫里多了一條用戶數據:

Node.js

密碼 bcrypt 加密

  • npm i bcrypt
  • 在 model.js 中設置密碼入庫前加密,這里的 hashSync方法接受兩個參數,val 表示傳入的 password,10表示加密的等級,等級越高,所需轉化的時長越長

Node.js

用戶登錄密碼解密

在 server.js 中添加處理 /login 的POST請求

app.post('/api/login', async (req, res) => { const user = await User.findOne({ username: req.body.username }) if (!user) { return res.status(422).send({  message: '用戶名不存在' }) } // bcrypt.compareSync 解密匹配,返回 boolean 值 const isPasswordValid = require('bcrypt').compareSync( req.body.password, user.password ) if (!isPasswordValid) { return res.status(422).send({  message: '密碼無效' }) } res.send({ user })})

登錄添加 token

安裝 jsonwebtoken npm i jsonwebtoken
引入 jsonwebtoken,自定義密鑰

// 引入 jwtconst jwt = require('jsonwebtoken')// 解析 token 用的密鑰const SECRET = 'token_secret'

在登錄成功時創建 token

/* 生成 tokenjwt.sign() 接受兩個參數,一個是傳入的對象,一個是自定義的密鑰*/const token = jwt.sign({ id: String(user._id) }, SECRET)res.send({ user, token})

這樣我們在發送請求時,就能看到創建的 token

Node.js

解密 token獲取登錄用戶

先在 server.js 處理 token

app.get('/api/profile', async (req, res) => { const raw = String(req.headers.authorization.split(' ').pop()) // 解密 token 獲取對應的 id const { id } = jwt.verify(raw, SECRET) req.user = await User.findById(id) res.send(req.user) })

發送請求,這里的請求頭是復制之前測試用的 token

### 個人信息
get {{url}}/profile
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjZDI5YjFlMTIwOGEzNDBjODRhNDcwMCIsImlhdCI6MTU1NzM2ODM5M30.hCavY5T6MEvMx9jNebInPAeCT5ge1qkxPEI6ETdKR2U

服務端返回如下圖,則說明解析成功

Node.js

配套完整代碼和注釋見 Github

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品免费观看在线| www.欧美精品| 97香蕉超级碰碰久久免费软件| 色偷偷av一区二区三区乱| 98精品国产高清在线xxxx天堂| www.美女亚洲精品| 北条麻妃久久精品| 97人洗澡人人免费公开视频碰碰碰| 一区二区三欧美| 国产欧美日韩免费看aⅴ视频| 国产午夜精品免费一区二区三区| 国产精品日韩av| 国内自拍欧美激情| 一本一本久久a久久精品牛牛影视| 色婷婷成人综合| xxx欧美精品| 欧美国产一区二区三区| 韩曰欧美视频免费观看| 国产精品伦子伦免费视频| 亚洲成人免费网站| 国模精品系列视频| 日韩精品极品在线观看| 日韩国产精品亚洲а∨天堂免| 亚洲精品v天堂中文字幕| 国产精品丝袜久久久久久高清| 色婷婷久久一区二区| 国产999在线观看| 午夜剧场成人观在线视频免费观看| 亚洲成人激情图| 国产精品成熟老女人| 影音先锋欧美精品| 92裸体在线视频网站| 日韩精品在线视频观看| 日本午夜在线亚洲.国产| 久久亚洲一区二区三区四区五区高| 日韩欧美精品免费在线| 午夜精品久久久99热福利| 国产精品视频资源| 久久人人爽人人爽人人片av高请| 亚洲精品国产suv| 国产91色在线|| 欧美国产精品日韩| 国产精品com| 国产一区二区丝袜高跟鞋图片| 亚洲国产成人久久综合一区| 国产99久久精品一区二区 夜夜躁日日躁| 色先锋久久影院av| 97精品在线视频| 欧美性生交大片免费| 亚洲人成77777在线观看网| 国内偷自视频区视频综合| 国产精品v日韩精品| 不卡毛片在线看| 久久久久久香蕉网| 国产一区二区三区直播精品电影| 国产成人亚洲综合91精品| 欧美在线日韩在线| 精品亚洲一区二区三区在线播放| 亚洲欧美国产精品va在线观看| 精品欧美国产一区二区三区| 26uuu久久噜噜噜噜| 91精品国产91久久久久久久久| 久久精品最新地址| 欧美成aaa人片在线观看蜜臀| 国产亚洲精品va在线观看| 国产精品免费在线免费| 亚洲一区二区在线| 精品国产一区二区在线| 狠狠久久五月精品中文字幕| 亚洲欧洲一区二区三区久久| 亚洲桃花岛网站| 国产精品一区久久| 在线观看精品国产视频| 亚洲电影在线看| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品成人久久电影| 国产精品第一第二| 伊人成人开心激情综合网| 欧美电影《睫毛膏》| 亚洲天堂网站在线观看视频| 国产精品第三页| 国产精品日韩久久久久| 亚洲国产一区二区三区四区| 欧美精品一区二区三区国产精品| 亚洲欧美另类中文字幕| 亚洲综合在线中文字幕| 午夜精品一区二区三区在线视| 日韩av电影手机在线观看| 亚洲成人黄色在线| 91亚洲va在线va天堂va国| 精品成人av一区| 影音先锋欧美在线资源| 中文字幕在线看视频国产欧美| 久久久91精品| 国内精品久久久久伊人av| 国产精品久久91| 亚洲人线精品午夜| 色婷婷成人综合| 久久99精品久久久久久青青91| 精品久久久久久国产91| 亚洲精品国产精品久久清纯直播| 欧美视频13p| 欧美精品18videos性欧美| 91午夜理伦私人影院| 国产在线播放91| 亚洲精品97久久| 国产偷国产偷亚洲清高网站| 国产精品国语对白| 久久久精品国产| 国产在线视频2019最新视频| 日韩电影在线观看永久视频免费网站| 亚洲国产精品久久91精品| 国产一级揄自揄精品视频| 亚洲国产精品久久久久| 九色精品免费永久在线| 久久久久一本一区二区青青蜜月| 欧美精品在线免费| 亚洲va久久久噜噜噜久久天堂| 国产成人精品免费久久久久| 91免费版网站入口| 亚洲字幕一区二区| 社区色欧美激情 | 久久久伊人日本| 精品国产一区二区三区久久狼黑人| 在线看国产精品| 亚洲的天堂在线中文字幕| 国产精品尤物福利片在线观看| 韩国三级日本三级少妇99| 伊人久久久久久久久久久| 亚洲精品国产精品自产a区红杏吧| 国产精品高清在线观看| 中文字幕亚洲一区二区三区五十路| 一本一道久久a久久精品逆3p| 精品国产一区二区三区久久| 久久噜噜噜精品国产亚洲综合| 国产区精品在线观看| 97视频在线观看免费高清完整版在线观看| 欧美精品在线看| 日韩av在线直播| 国产精品福利在线观看| 奇米影视亚洲狠狠色| 黑人与娇小精品av专区| 亚洲一级片在线看| 国产suv精品一区二区三区88区| 日韩av色综合| 久久久人成影片一区二区三区| 黑人精品xxx一区| 欧洲成人性视频| 色狠狠久久aa北条麻妃| 日韩精品在线影院| 黄色一区二区在线观看| 成人国产精品色哟哟| 日本高清+成人网在线观看| 久久综合色88| 91久久精品在线| 岛国视频午夜一区免费在线观看| 亚洲91精品在线观看| 亚洲精品aⅴ中文字幕乱码| 91久久久久久久一区二区| 亚洲欧洲午夜一线一品| 欧美在线视频在线播放完整版免费观看| 日韩福利视频在线观看| 国产剧情久久久久久| 少妇高潮久久久久久潘金莲|