You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用户注册时出现Error 403问题,请求协助排查解决

解决注册接口403错误问题

问题概述

开发包含用户注册功能的Web应用时,提交注册表单后浏览器控制台返回403错误,用户无法完成注册。

错误原因

在app.js中全局挂载了JWT认证中间件authMiddleware.authenticateToken,导致所有接口请求(包括注册、登录这类无需认证的接口)都要求携带有效Token。但注册流程中用户还未生成Token,因此服务器直接返回403权限错误。

修复方案

移除全局认证中间件的挂载,仅为需要认证的接口单独添加该中间件,注册和登录接口不需要校验Token。

修改后的代码示例

更新app.js

const mongoose = require("mongoose");
const cors = require("cors");
const dotenv = require('dotenv');
const cookieParser = require("cookie-parser")

const authMiddleware = require('./middlewares/authMiddleware');
const authRoutes = require('./routes/routes');
const User = require('./models/user');

const app = express();

dotenv.config();
app.use(express.json());
app.use(cookieParser());
app.use(cors({ origin: 'http://127.0.0.1:5173' }));

const url = process.env.MONGO_URL;
mongoose
  .connect(url, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log("Connected to MongoDB database!");
  })
  .catch((error) => {
    console.error("Failed to connect to MongoDB Atlas:", error);
});

// 移除全局认证中间件
// app.use(authMiddleware.authenticateToken);

app.use('/api/auth', authRoutes);

// 给需要认证的测试接口单独添加中间件
app.get('/test', authMiddleware.authenticateToken, (req,res) => {
    res.json("test ok");
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

(可选)在路由文件中配置认证中间件

如果有需要认证的接口,可以在routes/routes.js中为特定路由添加中间件,示例如下:

const express = require('express');
const router = express.Router();
const authController = require('../controllers/authController');
const authMiddleware = require('../middlewares/authMiddleware');

// 注册、登录接口无需认证
router.post('/register', authController.registerUser);
router.post('/login', authController.loginUser);

// 需要认证的接口添加中间件
router.get('/profile', authMiddleware.authenticateToken, (req, res) => {
    res.json({ user: req.user });
});

module.exports = router;

验证修复

修改后重新启动后端服务,提交注册表单即可正常完成注册流程,服务器会返回201状态码,前端可跳转到登录页面。

内容的提问来源于stack exchange,提问作者user16009462

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:04:58