社区首页 >问答首页 >护照js会话不适用于Cors。

护照js会话不适用于Cors。
EN

Stack Overflow用户
提问于 2017-12-21 15:37:23
回答 1查看 1.2K关注 0票数 6

我在网上搜索了很多,但找不到答案。

我在一个端口上使用我的前端,在另一个端口使用我的后端。我使用cors来启用请求,这是可行的。但是,当我实现护照js和与mongodb的会话不起作用时,这意味着当我尝试用req.user获取用户时,这是未定义的。这是我的index.js代码

代码语言:javascript
代码运行次数:0
复制
app.use(cors());
app.use(session({
resave: false,
saveUninitialized: false,
secret: 's3cr3et',
store: new MongoStore({
    url: process.env.MONGO_URI
})
}));
app.use(passport.initialize());
app.use(passport.session());

我的护照js是

在这里,我定义了我的auth,序列化和反序列化用户。我的Auth和序列化运行良好,但反序列化不是

代码语言:javascript
代码运行次数:0
复制
    passport.serializeUser(function(user, done)  {
  done(null, user.id);
});

passport.deserializeUser(function (id, done)  {
  User.findById(id, (err, user) => {
    done(null, user);
  });
});

passport.use(new LocalStrategy({ usernameField: 'email' }, (email, password, done) => {
  User.findOne({ email: email.toLowerCase() }, (err, user) => {
    if (err) { return done(err); }
    if (!user) { return done(null, false, { error: 'Invalid credentials.' }); }
    user.comparePassword(password, (err, isMatch) => {
      if (err) { return done(err); }
      if (isMatch) {
        return done(null, user);
      }
      return done(null, false, { error: 'Invalid credentials.' });
    });
  });
}));

我也尝试过cookie会话,而不是mongo,但我想不是解决方案。问题是cors,出于某种原因,护照不看会议。

另外,我试图在coors凭据中启用并指定源文件,但是反序列化仍然没有设置用户

代码语言:javascript
代码运行次数:0
复制
app.use(cors({
    credentials: true,
    origin: ['http://localhost:8080']
}));

我希望你能帮我,因为我不能让它工作,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 20:37:42

我也有过同样的问题。在我的例子中,我在前端有一个SPA和一个RESFful (嗯,实际上不是因为我们在这里维护状态)后端在Node.js上。后来,我发现当我向我的RESTful API发出请求时,我并没有将浏览器cookie和数据一起发送。这正是问题所在,不允许用户去序列化,因为我们需要后端上的cookie数据来确定哪个用户发送了特定的请求。试着做同样的事,我希望这能解决你的问题,就像我的问题一样。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47934155

复制
相关文章
kafka 中 zookeeper 具体是做什么的?
zookeeper 是 kafka 不可分割的一部分,可见其重要程度,所以我们有必要了解一下 zookeeper 在 kafka 中的具体工作内容。
dys
2019/12/15
1.7K0
做SaaS,实际上就是旧城改造
来源:ToB老人家|作者:王戴明  ---- SaaS的4条护城河 周末到一家非常优秀的SaaS公司交流。他们深耕某垂直领域,刚完成一笔数亿元的融资。 公司创始人给我说:他正在评估一个新的垂直领域。但让他纠结的是,这个领域已经有多家SaaS公司竞争,其中还有一家上市公司。对他来说,如果不能做到垂直领域的第一,那么还不如不做。 他的观点我颇为赞同。其实,对创业者来说,竞争并不可怕,上市公司也不足为惧,真正可怕的是:创业者没有想明白自己的护城河在哪里。一家没有护城河的SaaS公司,不要说应
腾讯SaaS加速器
2021/06/08
4160
在Hadoop中Container是干什么的?
Container:马 克-to-win @ 马克java社区:前面我们总提资源分配。而资源分配的体现就要用到一个抽象概念“容器”(Container)表示,Container将内存、 CPU、磁盘、网络等资源封装在一起,这样可以起到限定资源边界的作用。比如给你一个Container的资源,里面包含3个G的内存,1G硬盘。当销毁 你的Container时,连带的内存,硬盘都没有了。
马克java社区
2021/06/24
7690
在Hadoop中ResourceManager是干什么的?
ResourceManager:马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。当应用程序对集群资源需求时,ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所有NodeManager)的资源。
马克java社区
2021/06/24
8710
在Hadoop中NodeManager是干什么的?
NodeManager:马克-to-win @ 马克java社区:NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。
马克java社区
2021/06/24
8250
在Hadoop中ApplicationMaster是干什么的?
ApplicationMaster:马 克-to-win @ 马克java社区:想了解ApplicationMaster,我们需要了解一下它工作的过程。 用户向YARN集群提交应用程序时:(包含ApplicationMaster程序,ApplicationMaster启动命令,用户自己的程序)后, ApplicationMaster向资源调度器申请执行任务的资源容器Container,运行用户自己的程序任务job(我们可以用浏览器看yarn 里的job进展),监控整个任务的执行,跟踪整个任务的状态,处理任务失败以异常情况。
马克java社区
2021/06/24
1K0
链路层是做什么的?
最大传输单元。链路层[以太网(1500字节)和802.3(1492字节)]对数据帧的长度存在限制。
爬蜥
2019/07/09
1.3K0
java中trim()方法是用来干什么的?
trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然中间的那些空格不会被去掉,如:
瑞新
2020/07/07
1.3K0
docker是啥?是干什么的?
docker有3大核心:镜像、容器、仓库。 鲸鱼是操作系统。 要交付的应用程序是各种货物,要将各种形状和尺寸不同的货物放到大鲸鱼上,得考虑每件货物怎么安放(应用程序配套的环境),还得考虑货物和货物之间能否重叠起来(应用程序依赖的环境是否会冲突)。 现在使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼可以用同样地方式安放、堆叠集装了,省事省力。 即:打包放到鲸鱼上,鲸鱼放到服务器上。也就是“build——ship——run”,这样在自己的电脑上怎么运行,在服务器上也会怎么运行。 用docker运行一个程序的过程: 去仓库把镜像拉到本地,然后用一条命令把镜像运行起来,变成容器。
兔子吖
2019/10/14
1.5K0
docker是啥?是干什么的?
大数据开发是干什么的(大数据开发是做什么的)
据数联寻英发布《大数据人才报告》显示,目前全国的大数据人才仅46万,未来3-5年内大数据人才的缺口将高达150万,越来越多人加入到大数据培训,都希望在大数据培训机构中学习最前沿的知识,找一份不错的工作。
全栈程序员站长
2022/07/31
1.3K0
都知道这么做是对的,但是能说为什么的没多少 ...
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。
宫水三叶的刷题日记
2021/02/26
3.3K0
C#9.0:Init
在以前的C#版本里面,如果需要定义一个不可修改的的类型的做法一般是:声明为readonly,并设置为只包含get访问器,不包含set访问器。如下:
用户9127601
2021/11/01
3470
c语言目标程序中的段
段的分类 根据C语言的特点,每一个源程序生成的目标代码将包含源程序所需要表达的所有信息和功能。目标代码中各段生成情况如下:
用户4766018
2022/08/19
1.4K0
Actor模型是做什么的?
问题 用户A的操作 (1)开始事务 (2)操作资源1 (3)操作资源2 (4)提交事务 用户B的操作 (1)开始事务 (2)操作资源2 (3)操作资源1 (4)提交事务 如果用户A和用户B的两个事务同时发生,A锁住了资源1,B锁住了资源2,互相等待,陷入死锁 如果采用同步锁synchronized,可能会出现破坏逻辑一致性的问题 这个问题的根本原因:数据是被动的被处理 在读多写少,较少涉及事务机制的场景下,这个问题不明显,否则就面临此问题 Actor模型 Actor模型就是用来解决事务
dys
2018/04/03
1.3K0
serialVersionUID 是干什么的?
我们有时候在写代码的时候,对于一个需要序列化的类,如果不去写 serialVersionUID,编译器可能就会提示我们 The serializable class ClassName does not declare a static final serialVersionUID field of type long。
做棵大树
2022/09/27
1.3K0
Docker是用来干什么的?
Docker目前只能在Linux下运行 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。
爱吃大橘
2022/12/27
1.2K0
csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?
当我们在传统格式的 csproj 项目文件中安装 NuGet 包后,有时会在项目文件中发现空的 NuGetPackageImportStamp 节点。这个空的节点让我们这波强迫症患者觉得有点难以接受,关键是手工删除之后也没发现有什么副作用。
walterlv
2023/10/22
2890
csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?
数据产品经理是做什么的?
作为一名 B 端产品经理,一直致力于研究企业内部效率工具的实施与搭建,热衷于使用以数据指标为引擎的各类增长方法。应该说,平时我的工作方法与数据产品经理非常接近,今天看到这道题,忍不住顺手答一下,很多想法不太成熟,还请数据大佬们轻拍。
蒋川
2021/08/10
1.3K0
数据产品经理是做什么的?
点击加载更多

相似问题

如何动态导入带有超时的不安全Python模块?

10

Python扭曲的ImportError:无法导入名称unicode

14

python确定导入模块的名称

32

Python:导入带有参数的模块?

215

带有iis导入模块的Python

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档