当前位置: 首页 > wzjs >正文

网站建设的业务规划门户网站建设教程

网站建设的业务规划,门户网站建设教程,最新手机资讯,德兴网站seo一、简单登出&#xff08;客户端移除 JWT&#xff09; 这种方式只需要客户端移除本地存储的 JWT 即可&#xff0c;服务端不需要额外处理。 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8" /><meta name"vie…

一、简单登出(客户端移除 JWT)

这种方式只需要客户端移除本地存储的 JWT 即可,服务端不需要额外处理。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>User Logout</title></head><body><button id="logoutButton">Logout</button><script>const logoutButton = document.getElementById("logoutButton");logoutButton.addEventListener("click", () => {// 移除本地存储的 JWTlocalStorage.removeItem("jwtToken");// 可以跳转到登录页面window.location.href = "/login";});</script></body></html>

二、服务端辅助登出(JWT 黑名单)

为了防止已登出的 JWT 被恶意使用,服务端可以将登出的 JWT 加入黑名单。可以使用 MongoDB 来存储这个黑名单。

1. 创建黑名单模型(`blacklistModel.js`)

const mongoose = require("mongoose");const blacklistSchema = new mongoose.Schema({token: {type: String,required: true,unique: true,},expiresAt: {type: Date,default: Date.now,expires: "1h", // 设置自动过期时间,与 JWT 过期时间一致},});const Blacklist = mongoose.model("Blacklist", blacklistSchema);module.exports = Blacklist;

2. 在 `app.js` 中添加登出路由

const express = require("express");const connectDB = require("./db");const User = require("./userModel");const jwt = require("jsonwebtoken");const Blacklist = require("./blacklistModel");const app = express();const port = 3000;const secretKey = "yourSecretKey";// 解析请求体中的 JSON 数据app.use(express.json());// 连接数据库connectDB();// 处理用户登出的路由app.post("/logout", async (req, res) => {try {const token = req.headers["authorization"]?.split(" ")[1];if (!token) {return res.status(401).json({ message: "No token provided" });}// 验证 JWTjwt.verify(token, secretKey, async (err, decoded) => {if (err) {return res.status(401).json({ message: "Invalid token" });}// 将 JWT 加入黑名单const newBlacklistedToken = new Blacklist({ token });await newBlacklistedToken.save();res.json({ message: "Logout successful" });});} catch (error) {console.error("Error during logout:", error);res.status(500).json({ error: "Internal Server Error" });}});// 验证 JWT 中间件,在需要验证的路由前使用const verifyToken = (req, res, next) => {const token = req.headers["authorization"]?.split(" ")[1];if (!token) {return res.status(401).json({ message: "No token provided" });}// 检查是否在黑名单中Blacklist.findOne({ token }, (err, blacklistedToken) => {if (err) {return res.status(500).json({ error: "Internal Server Error" });}if (blacklistedToken) {return res.status(401).json({ message: "Token has been revoked" });}jwt.verify(token, secretKey, (err, decoded) => {if (err) {return res.status(401).json({ message: "Invalid token" });}req.user = decoded;next();});});};// 示例受保护的路由app.get("/protected", verifyToken, (req, res) => {res.json({ message: "This is a protected route", user: req.user });});// 启动 Express 服务器app.listen(port, () => {console.log(`Server is running on port ${port}`);});


文章转载自:

http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://00000000.chfxz.cn
http://www.dtcms.com/wzjs/607390.html

相关文章:

  • 青岛建设厅官方网站网站设计与制作服务
  • 怎么做自己的音乐网站郑州艾特软件 网站建设
  • 菏泽网站设计培训做新媒体每天必看的网站
  • 电子商务网站系统的开发设计西安活动策划执行公司
  • 石家庄网站建设燕杰网站和公众号的区别
  • 网站备案核验照片背景怎么下载浏览器上的视频
  • 拉企业做网站好干吗832网络销售平台
  • 招聘网站开发兼职短视频营销系统
  • 南京服装网站建设模板网站制作
  • 昆明网站建设方案托管景观设计网站大全
  • 简单公司网站模版苏州马可波罗网站建设
  • 网站 做英文 翻译 规则怎么查询商标是否已被注册
  • 网站的登录弹窗怎么做工信部网站原来是
  • 物流公司网站模版罗定城乡建设规划局网站
  • 网站策划与建设寻找网站建设公司
  • 网站如何留言wordpress plug in
  • 个人怎样建网站赚钱百度seo推广
  • 网站市场推广wordpress 表 用户文章
  • 做超市促销海报哪个网站好电影网站如何优化
  • 阿里网站建设教程商城app定制
  • 橙色营销网站福州网站推广优化
  • 深圳企业黄页网站网上书城网站系统建设
  • 网站建设推广哪家好磁县企业做网站推广
  • 怎么做网店网站网站建设比较牛的企业
  • 苏网站建设做网站的电话
  • 学校网站建设培训方案模板烟台网站建设
  • 珠宝网站设计广州seo排名优化
  • 中国免费网站服务器下载企业网站的在线推广方法有哪几种
  • word可以做网站链接吗定制开发小程序的公司
  • 做网站如何赢利的网站热销榜怎么做