我知道这里有很多类似的问题,但是没有一个问题可以帮助我解决问题。我有一个不需要任何身份验证的主页,然后进行注册,登录和受保护的路由。主页上没有任何内容。
我的 index.js 看起来像这样:
axios.get("/api/auth/loggedin").then(response => {
const user = response.data;
console.log(response.data);
ReactDOM.render(
<BrowserRouter>
<App user={user} />
</BrowserRouter>,
document.getElementById("root")
);
}).catch(err => err);
和 App.js 示例代码:
<Route exact path="/" component={Home}/>
<Route
exact
path="/signup"
render={props => <Signup {...props} setUser={this.setUser} />}
/>
并且作为 routes / auth.js的一部分:
router.get("/loggedin", (req, res) => {
res.json(req.user);
});
configs / passport.js
const User = require("../models/User");
const LocalStrategy = require("passport-local").Strategy;
const bcryptjs = require("bcryptjs"); // !!!
const passport = require("passport");
passport.serializeUser((loggedInUser, cb) => {
cb(null, loggedInUser._id);
});
/services/auth.js
const signup = (username, password) => {
return axios
.post("/api/auth/signup", {
username: username,
password: password
})
.then(response => {
return response.data;
})
.catch(err => {
return err.response.data;
});
};
与登录类似
我错过了什么吗?不知道要包括什么代码。似乎是服务器/端点问题,但我无法弄清楚api路由如何发挥作用。我不明白,如果您不必登录才能看到{Home},为什么会发生此错误。在此先感谢您的帮助。我已经花了好几天了。