Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么React应用程序没有';是否保持nodejs服务器登录会话?_Javascript_Node.js_Reactjs_Axios_Saml 2.0 - Fatal编程技术网

Javascript 为什么React应用程序没有';是否保持nodejs服务器登录会话?

Javascript 为什么React应用程序没有';是否保持nodejs服务器登录会话?,javascript,node.js,reactjs,axios,saml-2.0,Javascript,Node.js,Reactjs,Axios,Saml 2.0,你好。 我的NodeJS服务器是: app.js “严格使用”; const http=require('http'); const express=require('express'); const session=require('express-session'); 常量pino=需要('pino'); const pinoHttp=require('pino-http'); const passport=require('./config/passport'); const httpE

你好。 我的NodeJS服务器是:

app.js

“严格使用”;
const http=require('http');
const express=require('express');
const session=require('express-session');
常量pino=需要('pino');
const pinoHttp=require('pino-http');
const passport=require('./config/passport');
const httpErrors=require('http-errors');
module.exports=主功能(选项,cb){
//设置默认选项
const ready=cb | | function(){};
const opts=Object.assign(
{
//默认选项
},
选择权
);
常数记录器=引脚();
//服务器状态
让服务器;
让serverStarted=false;
设serverClosing=false;
//设置错误处理
函数未处理错误(err){
//记录错误
记录器错误(err);
//只清理一次
如果(服务器关闭){
返回;
}
serverClosing=true;
//如果服务器已启动,请将其关闭
如果(服务器已启动){
server.close(函数(){
过程。退出(1);
});
}
}
进程.on('uncaughtException',未处理的错误);
进程.on('unhandledRejection',unhandledError);
//创建express应用程序
常量app=express();
//通用中间件
app.use(pinoHttp({logger}));
应用程序使用(会话)({
resave:false,
秘密:“超级秘密密码”,
saveUninitialized:true
}));
app.use(passport.initialize());
app.use(passport.session());
use(express.urlencoded({extended:false}));
使用(express.json());
要求(“./路线”)(应用程序、选项);
应用程序使用(函数FourHandler(req、res、next){
接下来(httpErrors(404,`Route not found:${req.url}`));
});
应用程序使用(函数FiveHundHandler(err、req、res、next){
如果(错误状态>=500){
记录器错误(err);
}
res.status(err.status | | 500).json({
信息:[
{
代码:err.code | |“InternalServerError”,
消息:err.message
}
]
});
});
server=http.createServer(app);
监听服务器(8080);

};尝试在应用程序之前设置express会话。使用(passport.initialize())如下所示:

app.use(
        session({
            name: "cookie-name",
            resave: true,
            proxy: true,
            secret: 'secret',
            saveUninitialized: true,
            cookie: {
                secure: true,
                sameSite: "none"
            }
        })
    );
    app.use(passport.initialize())
    app.use(passport.session());

浏览器现在阻止未配置samesite的Cookie,因为默认值为“lax”,它强制在同一域中执行Cookie,因此,您必须将samesite配置为“无”,以允许从跨站点域执行Cookie

sameSite改为“无”以允许跨站点

安全为真

代理以允许“X-Forwarded-Proto”标头


更多信息:

有趣。我不知道!我将检验你的建议。我目前使用的是勇敢的浏览器。