Roh*_*has 5 javascript node.js express passport-local passport.js
我用 构建了一个简单的用户身份验证应用程序React, node and Passport JS。打开时localhost,它会成功存储会话并保留用户,但在 Heroku 上部署后,它不会保留会话。
我检查了网络选项卡,发现 SameSite 属性默认设置为lax
,如果客户端想要获取跨站点 Cookie,则应设置为none并且必须设置secure属性。但是当我将 SameSite 设置为 none 并将 secure 设置为 true 时,客户端不会从服务器获取 cookie(例如,响应中不存在 set-cookie 标头)
。
我不知道我哪里做错了。
这是我的服务器 JS
// Middlewares
app.use(express.json());
app.use(
cors({
origin: "https://authclient.netlify.app",
credentials: true,
})
);
app.use(
session({
secret: "secret",
resave: true,
saveUninitialized: true,
cookie: {
sameSite: "none",
secure: true,
},
store: MongoStore.create({ mongoUrl: dbURI }),
})
);
app.use(cookieParser("secret"));
app.use(passport.initialize());
app.use(passport.session());
require("./passportConfig")(passport);
//______________________________________
//Routes
app.post("/login", (req, res, next) => {
passport.authenticate("local", (err, user, info) => {
if (err) throw err;
if (!user) res.send(info.message);
else {
req.logIn(user, (err) => {
if (err) throw err;
res.send("Logged In!");
});
}
})(req, res, next);
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |