首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

express-使用mongoDB存储的会话在每次登录时都会创建新会话,即使在请求时包含凭据

Express是一个流行的Node.js Web应用程序框架,它提供了一种简单而灵活的方式来构建Web应用程序。MongoDB是一种NoSQL数据库,它提供了高性能、可扩展和灵活的数据存储解决方案。

在Express中使用MongoDB存储会话时,每次登录时都会创建新的会话,即使在请求时包含凭据。这可能是由于会话管理的配置问题导致的。

要解决这个问题,可以采取以下步骤:

  1. 检查会话管理配置:确保在Express应用程序中正确配置了会话管理中间件。可以使用express-session中间件来处理会话管理。确保会话的持久化存储设置为MongoDB,并且会话的过期时间设置合理。
  2. 检查登录逻辑:确保在用户登录时,会话正确地创建和保存用户的凭据。可以使用Passport.js等身份验证中间件来处理用户身份验证和会话管理。
  3. 检查会话标识符:确保每个会话都有唯一的标识符。可以使用express-session中间件的默认设置来生成唯一的会话ID。
  4. 检查会话存储:确保会话存储在MongoDB中正确工作。可以使用connect-mongo等中间件来将会话存储到MongoDB中。
  5. 检查会话的使用方式:确保在每次请求中正确使用会话。可以通过在每次请求中包含会话凭据或使用会话中间件来自动处理会话。

总结起来,要解决Express中使用MongoDB存储的会话在每次登录时都会创建新会话的问题,需要检查会话管理配置、登录逻辑、会话标识符、会话存储和会话的使用方式。确保这些方面都正确配置和使用,以确保会话在每次登录时都能正确创建和使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于Web验证几种方法

基于会话验证 使用基于会话身份验证(或称会话 cookie 验证、基于 cookie 验证),用户状态存储服务器上。它不需要用户每个请求中提供用户名或密码,而是登录后由服务器验证凭据。...如果凭据有效,它将生成一个会话,并将其存储一个会话存储中,然后将其会话 ID 发送回浏览器。浏览器将这个会话 ID 存储为 cookie,该 cookie 可以向服务器发出请求随时发送。...基于会话身份验证是有状态每次客户端请求服务器,服务器必须将会话放在内存中,以便将会话 ID 绑定到关联用户。...它们用于实现社交登录,一种单点登录(SSO)形式。社交登录使用来自诸如 Facebook、Twitter 或谷歌等社交网络服务现有信息登录到第三方网站,而不是创建一个专用于该网站登录帐户。...通过身份验证后,你将被重定向回自动登录网站。这是使用 OpenID 进行身份验证示例。它让你可以使用现有帐户(通过一个 OpenID 提供程序)进行身份验证,而无需创建帐户。

3.7K30

微服务架构如何保证安全性?

客户向FTGO 应用程序发出每个后续请求都会包括会话令牌 当用户使用其用户ID和密码登录,客户端会向FTGO应用程序发出包含用户凭据POST 请求。...2.登录请求由 LoginHandler 处理,LoginHandler 验证凭据创建会话,并在会话存储有关主体信息。 3.Login Handler 将会话令牌返回给客户端。...客户端发出包含凭据请求给 API Gateway。 2. API Gateway 对凭据进行身份验证,创建安全令牌,并将其传递给服务。...基于登录客户端事件序列如下: 1.客户端发出包含凭据登录请求。 2.API Gateway 返回安全令牌。 3.客户端调用操作请求包含安全令牌。...然后,API客户端向API Gateway发出请求提供这两个令牌。 ? 图5 客户端通过将其凭据发送到 API Gateway 来登录

5K40

如何在微服务架构中实现安全性?

客户向FTGO 应用程序发出每个后续请求都会包括会话令牌 当用户使用其用户ID和密码登录,客户端会向FTGO应用程序发出包含用户凭据POST 请求。...2.登录请求由 LoginHandler 处理,LoginHandler 验证凭据创建会话,并在会话存储有关主体信息。 3.Login Handler 将会话令牌返回给客户端。...服务中实现身份验证另一个问题是不同客户端以不同方式进行身份验证。纯API客户端使用基本身份验证为每个请求提供凭据。其他客户端可能首先登录,然后为每个请求提供会话令牌。...基于登录客户端事件序列如下: 1.客户端发出包含凭据登录请求。 2.API Gateway 返回安全令牌。 3.客户端调用操作请求包含安全令牌。...然后,API客户端向API Gateway发出请求提供这两个令牌。 ? 图5 客户端通过将其凭据发送到 API Gateway 来登录

4.7K30

如何在微服务架构中实现安全性?

客户向 FTGO 应用程序发出每个后续请求都会包括会话令牌 当用户使用其用户 ID 和密码登录,客户端会向 FTGO 应用程序发出包含用户凭据 POST 请求。...登录请求由 LoginHandler 处理,LoginHandler 验证凭据创建会话,并在会话存储有关主体信息。 Login Handler 将会话令牌返回给客户端。...API 客户端每个请求包含凭据。基于登录客户端将用户凭据发送到 API Gateway 进行身份验证,并接收会话令牌。一旦 API Gateway 验证了请求,它就会调用一个或多个服务。 ?...API Gateway 对凭据进行身份验证,创建安全令牌,并将其传递给服务。 基于登录客户端事件序列如下: 客户端发出包含凭据登录请求。 API Gateway 返回安全令牌。...然后,API 客户端向 API Gateway 发出请求提供这两个令牌。 ? 图 5 客户端通过将其凭据发送到 API Gateway 来登录

4.5K40

Windows 身份验证中凭据管理

在这些系统中,每个交互式登录会话都会创建一个单独 Winlogon 服务实例。...存储凭据直接与自上次重新启动以来已启动且尚未关闭 LSASS 登录会话相关联。...例如,当用户执行以下任一操作,会创建具有存储 LSA 凭据 LSA 会话登录到计算机上本地会话或 RDP 会话 使用RunAs选项运行任务 计算机上运行活动 Windows 服务...但是,当计算机与域控制器断开连接并且用户提供域凭据,Windows 会在验证机制中使用缓存凭据过程。 每次用户登录到域,Windows 都会缓存提供凭据并将它们存储操作系统安全配置单元中。...凭据通常被创建或转换为计算机上可用身份验证协议所需形式。凭据可以存储本地安全机构子系统服务 (LSASS) 进程内存中,供帐户会话期间使用

5.7K10

单点登录与授权登录业务指南

一旦授权,你就可以使用社交媒体账号新网站上登录,而无需创建账户。这种方式简化了登录流程,同时保护了你密码安全,因为你社交媒体登录信息不会被第三方网站获取。...令牌和凭证使用SSO环境中,认证中心会发放令牌或凭证给用户。当用户访问不同站点,这些站点会根据用户提供令牌或凭证来创建独立局部会话。...每个站点都会验证这些令牌有效性,确保用户已经SSO中心进行了身份验证。 Cookie和本地存储:大多数网站使用浏览器Cookie来保持用户会话状态。...当用户登录某个系统后,该系统可以在用户浏览器上设置一个特定Cookie。这个Cookie通常包含会话ID或其他标识信息,使得该系统在用户再次访问能识别出具体用户会话。...注册系统销毁局部会话:每个收到注销请求系统(如系统2,一个内部论坛服务)都会接收到来自SSO认证中心请求,并销毁与该用户相关局部会话

69021

每日一博 - 闲聊 Session、cookie、 JWT、token、SSO OAuth 2.0

---- 概述 当谈到网络应用程序身份验证和会话管理,以下是一些重要概念: Session(会话): 会话是一种服务器端数据存储机制,用于跟踪用户与网站交互。...每当用户访问网站,服务器都会创建一个唯一会话标识,通常是一个会话ID。该标识存储服务器上,而与用户浏览器无关。...每当用户请求与同一域名相关联页面,浏览器都会将 Cookie 发送回服务器,以便服务器可以识别用户。 Cookie 常用于存储会话标识、用户首选项和其他临时数据,用于改善用户体验。...SSO(Single Sign-On 单点登录): SSO 是一种身份验证方法,允许用户只需一次登录,然后就可以访问多个关联应用程序或服务,而无需每次都输入凭据。...OAuth 2.0 常见应用包括社交登录(如使用 Google 或 Facebook 登录)和 API 访问授权。

27630

Jwt,Token,Cookie,Session之间区别

存储用户相关信息,以便多次请求能够定位到同一个上下文,流程如下: 这样,当用户应用程序 Web 页之间跳转存储 Session 对象中变量将不会丢失,而是整个用户会话中一直存在下去。...当用户请求来自应用程序 Web 页,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。...使用 JWT 主要用来下面两点 认证(Authorization):这是使用 JWT 最常见一种情况,一旦用户登录,后面每个请求都会包含 JWT,从而允许用户访问该令牌所允许路由、服务和资源。...当用户登录,Session 就被服务端安全创建。...每次请求,服务器都会会话 Cookie 中读取 SessionId,如果服务端数据和读取 SessionId 相同,那么服务器就会发送响应给浏览器,允许用户登录

50560

六种Web身份验证方法比较和Flask示例代码

它不要求用户每个请求中提供用户名或密码。相反,登录后,服务器将验证凭据。如果有效,它将生成一个会话,将其存储会话存储中,然后将会话 ID 发送回浏览器。...浏览器将会话ID存储为cookie,每当向服务器发出请求,就会发送该cookie。 基于会话身份验证是有状态。...每次客户端请求服务器,服务器都必须在内存中找到会话,以便将会话 ID 绑定回关联用户。 流程 优点 更快后续登录,因为不需要凭据。 改进用户体验。 相当容易实现。...它们用于实现社交登录,这是一种单点登录(SSO)形式,使用来自社交网络服务(如Facebook,Twitter或Google)现有信息登录到第三方网站,而不是专门为该网站创建登录帐户。...通过身份验证后,系统会将您重定向回自动登录网站。这是使用 OpenID 进行身份验证示例。它允许您使用现有帐户(通过OpenID提供程序)进行身份验证,而无需创建帐户。

7.1K40

【Java 进阶篇】Cookie 使用详解

Cookie 可以被服务器端创建并发送给客户端,然后客户端之后每次请求都会将这些 Cookie 数据发送给服务器。这使得服务器可以不同请求之间跟踪用户状态和信息。...例如,当用户登录后,服务器可以创建一个包含用户标识信息 Cookie,并将其发送到客户端。然后,客户端每次请求都会将该 Cookie 发送给服务器,以便服务器知道请求来自哪个用户。...客户端发送 Cookie:之后每次请求中,客户端都会将之前存储 Cookie 发送给服务器。这是通过将 Cookie 添加到请求 HTTP 头部来完成。...一个典型用户登录场景中,会话可能如下进行: 用户提供用户名和密码登录网站。 服务器验证用户凭据,然后创建一个唯一会话标识,通常称为会话 ID。...服务器创建一个名为 “session” Cookie,其中包含会话 ID。 客户端(浏览器)存储该 Cookie。 客户端每个后续请求都包括 Cookie,以便服务器可以识别用户会话

46640

【HTTP】客户端识别和cookie机制

但是这种方案是有很多问题 客户端IP是描述是客户端机器,而不是用户 很多因特网服务提供商都是在用户登录为其随机分配IP,用户每次登录都会得到一个不同地址 为了提高安全性,并对稀缺地址资源进行管理...为了让web站点登录更加便捷,HTTP中包含了一种内建机制,可以使用www-Authenticate首部和Authorization首部向web站点传送用户相关信息。...cookie基本思想就是让浏览器积累一组服务器特有的信息,每次访问服务器都将这些信息提供给他。因为浏览器要负责存储cookie信息,所以此系统被称为客户端侧状态。...这正是因为前一次登录,服务器发送了包含登录凭据(用户名加密码某种加密形式)Cookie到用户硬盘上。...第二次登录,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

1.8K20

登录工程:传统 Web 应用中身份验证技术|洞见

Basic和Digest是通过HTTP请求中直接包含用户名和密码,或者它们哈希值来向服务器传输用户凭据方法。...其过程如下图所示: 这一过程原理很简单,专门发送一个鉴权请求,只在这个请求头中包含原始用户名和密码凭据,经服务器验证合法之后,由服务器发给一个会话标识(Session ID),客户端将会话标识存储...Cookie 中,服务器记录会话标识与经过验证用户对应关系;后续客户端使用会话标识、而不是原始凭据去与服务器交互,服务器读取到会话标识后从自身会话存储中读取已在第一个鉴权请求中验证过用户身份。...虽然可以引入单独会话存储程序来避免这类问题,但引入一个中间件就会增加系统复杂性。...而用户鉴权最佳实践就是使用包含、含有加密内容 Cookie 作为替代凭据

1.8K50

【安全】如果您JWT被盗,会发生什么?

此属性使JWT对于难以获得信任Web上各方之间共享信息非常有用。 这是一个小代码片段,它使用njwt库JavaScript中创建和验证JWT。...JWT,它可以仅使用用于创建“密钥”来验证它 - 从而避免与后端数据库或缓存通信性能损失,增加每个请求延迟。...客户端(通常是浏览器或移动客户端)将访问某种登录页面 客户端将其凭据发送到服务器端应用程序 服务器端应用程序将验证用户凭据(通常是电子邮件地址和密码),然后生成包含用户信息JWT。...当客户端将来向服务器发出请求,它会将JWT嵌入到HTTP Authorization标头中以标识自己 当服务器端应用程序收到传入请求,它将检查是否存在HTTP Authorization标头,如果存在...如果攻击者试图使用受感染令牌修改用户登录凭据,则强制用户更改其密码可能会使攻击者远离其帐户。通过要求多因素身份验证,您可以更自信地重置其凭据用户是他们所声称的人而不是攻击者。 检查客户环境。

11.8K30

Netlogon(CVE-2020-1472)讲解及复现

但是每次我们尝试这样进行身份验证 ,服务器仍然会产生一个唯一服务器挑战,这个 挑战也是会话密钥一个参数 派生。这意味着会话密钥对于每次身份验证尝试都是不 同(并且是均匀分布。...利用步骤3:欺骗电话 即使调用加密被禁用,每一个做一些有趣事情 调用都必须包含一个所谓认证器值。此值是通过 将计算Netlogon凭据(带会话密钥)应用于客户端存 储凭据+时间戳值来计算。...客户存储凭据是客户维护增量值。执行握手, 它被初始化为与我们提供客户端凭据相同值。此 客户端凭据仅由零组成,因此在身份验证后执行第一 次调用客户端存储凭据将为0。...然而,只有当DC使用存储AD中密码来验证我们 登录尝试,而不是本地存储密码,这才有效。经 过一些实验,我发现简单地使用DC密码运行 Impacket“秘密转储”脚本是有效。...这包括域管理员散列(包括“krbtgt”键,它可以用来创 建金票),然后可以用来登录到DC(使用标准通行攻 击) 并更新存储DC本地注册表中计算机密码。

1.9K10

CVE-2020-1472漏洞分析

Netlogon会话由客户端启动,因此客户端和服务器先交换随机8个字节,客户端和服务器都先将密钥派生函数加密,然后客户端使用会话密钥用于计算客户端凭据,服务器则重新计算相同凭证,如果匹配,客户端必须知道计算机密码...在身份验证握手阶段,双方可以协商是否加密和加密认证,如果加密被禁用,所有执行重要操作必须仍然包含认证值,也是用会话密钥计算。 ?...身份验证阶段 客户端和服务器都是用加密原句函数中实现生成凭据为ComputeLogOneCredential,称为协议规范,这个函数接受8字节输入并通过加密会话对其进行转换产生相等长度输出key...3.欺骗请求 即使禁用了请求加密,每个请求依旧包含一个验证器值,该值通过应用ComputeLogonIncredential(会话密钥)函数值ClientStoredCredential+时间戳,ClientStoredCredential...5.提权到管理员 我们可以更改计算机密码时域控制器本身即使是我们连接同一个域控制器,其中AD中存储DC密码与密码不同存储本地注册表中HKLM\SECURITY\Policy\ Secrets

1.8K10

Session、Cookie、Token三者关系理清了吊打面试官

信息,该 Cookie 过期时间为浏览器会话结束; 2.jpg 接下来客户端每次向同一个网站发送请求请求都会带上该 Cookie信息(包含 sessionId ), 然后,服务器通过读取请求头中...通过每次产生请求对用户数据进行身份验证来解决此问题。 所以 JWT 和 Session Cookies 相同之处是什么?...当用户登录,Session 就被服务端安全创建。...每次请求,服务器都会会话 Cookie 中读取 SessionId,如果服务端数据和读取 SessionId 相同,那么服务器就会发送响应给浏览器,允许用户登录。...使用 JWT 主要用来下面两点 认证(Authorization):这是使用 JWT 最常见一种情况,一旦用户登录,后面每个请求都会包含 JWT,从而允许用户访问该令牌所允许路由、服务和资源。

2K20

Session、Cookie、Token 【浅谈三者之间那点事】

信息,该 Cookie 过期时间为浏览器会话结束; 接下来客户端每次向同一个网站发送请求请求都会带上该 Cookie信息(包含 sessionId ), 然后,服务器通过读取请求头中 Cookie...即使是安全,也不应该将敏感信息存储cookie 中,因为它们本质上是不安全,并且此标志不能提供真正保护。...通过每次产生请求对用户数据进行身份验证来解决此问题。 所以 JWT 和 Session Cookies 相同之处是什么?...每次请求,服务器都会会话 Cookie 中读取 SessionId,如果服务端数据和读取 SessionId 相同,那么服务器就会发送响应给浏览器,允许用户登录。...使用 JWT 主要用来下面两点 认证(Authorization):这是使用 JWT 最常见一种情况,一旦用户登录,后面每个请求都会包含 JWT,从而允许用户访问该令牌所允许路由、服务和资源。

19.4K2020

十个最常见 Web 网页安全漏洞之首篇

管理操作可以在数据库上执行 易受攻击对象 输入字段 与数据库交互 URL。 例子 登录页面上 SQL 注入 没有有效凭据情况下登录应用程序。 有效 userName 可用,密码不可用。...当会话通过注销或浏览器突然关闭结束,这些 cookie 应该无效,即每个会话应该有一个 cookie。 如果 cookie 未失效,则敏感数据将存在于系统中。...CSRF 攻击强制登录受害者浏览器向易受攻击 Web 应用程序发送伪造 HTTP 请求,包括受害者会话 cookie 和任何其他自动包含身份验证信息。...当用户登录原始网站时点击 URL ,攻击者将向受害者发送链接,该数据将从网站上被窃取。 意义 将此漏洞用作攻击者可以更改用户配置文件信息,更改状态,代表管理员创建新用户等。...易受攻击对象 用户档案页面 用户帐户表单 商业交易页面 例子 受害者使用有效凭据登录银行网站。他收到攻击者邮件说 “请点击这里捐赠 1 美元。”

2.3K50

【微服务】微服务安全 - 如何保护您微服务基础架构?

现在,微服务架构中,用户登录详细信息必须以这样一种方式保存,即用户每次尝试访问资源都不会被要求进行验证。现在,这产生了一个问题,因为用户详细信息可能不安全,也可能被第 3 方访问。...好吧,一旦您接受它,您用户凭据将被存储创建一个会话。现在,下次您进入同一页面,该页面将从缓存内存而不是服务器本身加载。在这个概念出现之前,会话集中存储服务器端。...现在,每次客户端请求网页请求都会被转发到服务器,然后服务器会判断用户是否可以访问所请求资源。 现在,主要问题是存储用户信息令牌。因此,需要对令牌数据进行加密,以避免对第三方资源任何利用。...分布式跟踪和会话管理 分布式跟踪 使用微服务,您必须持续监控所有这些服务。但是,当您必须同时监控大量服务,就会出现问题。为避免此类挑战,您可以使用一种称为分布式跟踪方法。...现在,只要用户进入应用程序,就会创建一个会话。因此,您可以通过以下方式处理会话数据: 您可以将单个用户会话数据存储特定服务器中。但是,这种系统完全依赖于服务之间负载均衡,只满足水平扩展。

91110
领券