Node.jsexpress和Angular通讯cookie问题

问题描述

我有这样的结构:一个基于带有express的node.js的服务器端脚本和一个用angular 10编写的客户端FE。该节点服务器由heroku和firebase上的Angular应用程序托管。

当尝试将会话存储在登录脚本上的节点中时,将存储该会话,但在其他服务的下一次调用中将不会检索到该会话。我尝试了不同的配置,但没有用。

这里有一些代码可以更好地理解问题:

登录脚本:

router.post('/',function(req: Request,res: Response,next: NextFunction) {
    var session = req.session;
    ....
    if (!!session){
        session.privateId = result[0].IDPrivato;
        session.timeOffset = timeOffset;
        res.send({
            success: true
        });
    }
}

登录脚本工作并成功返回有效载荷:“ true”。

二次通话服务:

router.get('/',next: NextFunction) {
    var session = req.session;
    ....
}

,这里有问题。会话未检索!

角度登录请求:

this.httpClient.post(this.baseUrl + "/privato/checkLogin",{
        {params}
    },{withCredentials: true}).subscribe( (val: HttpResponseModel) => {...});

第二个角度请求:

this.httpClient.get(this.baseUrl + "/common/getopenedDays",{withCredentials: true}).subscribe( (res: Array<GetopenedDaysModel>) => {...});

快速配置:

app.use(cors({
    origin: [some origins],credentials: true
}));
app.use(session({
    secret: 'secretPw',resave: false,saveUninitialized: true,cookie: {secure: true},}));

所有请求均采用https协议。

我尝试了很多节点配置,但仍然无法正常工作。登录脚本的状态为http,状态为200,有效负载正常,但是当FE调用一个服务时,var session = req.session;为空,因此失败。

有人可以解释问题出在哪里吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)