正如标题所说,为什么我的get请求有时有效,但大多数时候是404?
一直在胡闹着把“next()”去掉,但效果一样并不重要。与生成“res.json(req.user.firstname);”相同在------router.get中(“/user,auth,(req,res){})-----
module.exports.isAuth = (req, res, next) => {
if (req.isAuthenticated()) {
console.log(req.user);
res.json(req.user.firstName);
//next()
} else {
console.log("Nope");
res
.status(401)
.json({ msg: "You are not authorized to view this resource" });
}
};
当get请求起作用时,后端上的日志^^^^^会以两种不同的方式记录两次,如bwloe。又好又丑。
{
_id: 60e9fad2837ff62fcb580f27,
username: 'drakecoleman@rocketmail.com',
firstName: 'Drake',
lastName: 'Coleman',
hash: 'e017095b5684f72d88d9103f3a5df9dfbcb8fe23e823b6f0551a20151710721304b58cb02bc62b60098a383d0f573fdf5bcd30aa89a5b266db0d7aceb6d25656',
salt: '7e040e90411d647200cc9cc120a1b3b182b035105ce3488fbcbfd39b56f44d9b',
admin: true,
__v: 0
}
{“_id”:“60e9fad2837ff62fcb580f27”,“用户名”:”drakecoleman@rocketmail.com“,”姓氏“:”德雷克“,”姓氏“:”科尔曼“,”哈希“:”E017095B5684F72D88D9103F3A5DF9DFBCB8FE23E823B6F0551A20151710721304B58CB02BC62B60098A383D0F573FDF5BCD30AA89A5B266DB0D7ACEB6D2566“,”盐“:”7E040E90411D647200C9CC120A1B3B182B035CE3488FBCBFD39B56F44D9B9B9B6F44D9B“,”管理“,”真“,”真“,”
当它是404时,日志只在后端记录用户的丑陋版本。
index.js
const router = require("express").Router();
const passport = require("passport");
const bodyParser = require("body-parser");
const genPassword = require("../lib/passwordUtils").genPassword;
const connection = require("../config/database");
const mongoose = require("mongoose");
const User = mongoose.models.User;
const isAuth = require("./authMiddleware").isAuth;
router.use(bodyParser.urlencoded({ extended: false }));
/**
* -------------- GET ROUTES ----------------
*
*/
router.get("/user", isAuth);
React前端
user.js
import React from "react";
// import { Redirect } from "react-router-dom";
function UserProfile() {
// if (props.auth === true) {
// return <Redirect to="/login" />;
// } else {
// return <h1 className="red">Logged in </h1>;
// }
fetch("http://localhost:3000/user", {
method: "GET",
credentials: "include",
withCredentials: true,
headers: {
"Content-Type": "application/json",
},
})
.then((res) => res.json())
.then((data) => console.log(data))
.catch((err) => console.log(err));
return <h1>Hello</h1>;
}
export default UserProfile;
这是在请求之前在前端的控制台中,但我不认为这是一个问题,因为我在其他路线上得到这个,没有问题“[hmr]等待来自wds的更新信号…”
但我确实在404运行时首先在前端控制台上得到了这个错误
user.js:10gethttp://localhost:3000/user 404(未找到)
几秒钟后,我得到了(它也不是红色背景,只是白色文本)
typeerror:无法获取用户。js:10获取加载失败:获取“http://localhost:3000/user".
有人在discord上说,要确保我在app.js后端页面上初始化了会话,我确实这样做了。app.use(passport.initialize());app.use(passport.session());
1条答案
按热度按时间qncylg1j1#
刚刚发现了问题。只是为了表明,在显示所有代码时,您永远不会出错。它最终成为我的反序列化用户中间件。它被设置为
请原谅我帮助过那些不知道这部分代码的人。