首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一般用户会话处理(Nodejs)

一般用户会话处理(Nodejs)
EN

Stack Overflow用户
提问于 2013-02-07 15:24:04
回答 1查看 313关注 0票数 0

我用nodejsexpress编写了一个简单的and服务器。我实现了一个使用电子邮件用户名和密码的用户身份验证。此外,我有一个记忆函数,它将用户id和pwd散列存储到cookie中。现在我想要一个额外的会话,当用户关闭他的浏览器或单击注销按钮时结束。

哪种方式是实施的最佳实践?会话是否与具有过期时间的记住函数相同,并且在每个请求中,我必须根据数据库检查凭据?(这一点我不太确定)

我使用的技术:nodejsexpressmongodb

这不仅仅是一个nodejs问题,我更希望对这个问题有一个一般性的解释。

EN

回答 1

Stack Overflow用户

发布于 2013-02-07 19:34:25

让我先说明一下;将密码散列存储到cookie中将允许任何人在拥有密码散列时登录,如果密码散列由于某种原因暴露出来,那将是灾难性的。加密cookies很好,但不要允许将存储在数据库中的实际散列用于身份验证。永远不会。

关于重新身份验证,Node是一种在单线程上运行的技术,并通过在多个处理器和/或机器上运行更多实例来进行扩展。保持会话是避免访问数据库的好主意,但您还必须考虑体系结构。比方说,如果你使用存储在文件中的会话( PHP),并且你需要扩展到多台机器,会发生什么呢?至少没什么好东西。因此,您需要一个中心点来跟踪会话。

这可以是您的数据库(MongoDB)或诸如Redis之类的东西,也可以是允许您检查会话的另一种集中式机制。无论采用哪种方法,您都必须花费时间执行请求并检索客户端的会话值。如果您没有需要存储的附加值,那么创建一个专用的会话体系结构(需要过期等等)是没有意义的,重新执行身份验证是最简单、最符合逻辑的解决方案。

就我个人而言,我几乎不需要会话,只需要再次进行身份验证。

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

https://stackoverflow.com/questions/14754699

复制
相关文章
PHP的会话处理函数session
当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
于果
2021/08/25
2.5K0
会话管理技术实战(用户登录案例)
[1].创建一个User类,封装用户名和密码。 [2].提供一个首页面,欢迎用户登录:IndexServlet,提供一个退出的链接。 [3].提供一个登录的Servlet:处理登录请求。 [4].提供一个退出的Servlet:处理退出首页面的功能。
别团等shy哥发育
2023/02/27
4150
会话管理技术实战(用户登录案例)
PHP会话处理相关函数介绍
在PHP开发中,比起Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,这里我们详细介绍一下PHP处理会话函数将要用到10个函数。 PHP
wangxl
2018/03/07
1.2K0
PHP会话处理相关函数介绍
远程多用户多会话配置
不是刚需不要开启!!!如何开启往下看。(出了安全问题本人不负责,下面的文档不论哪里的都是介绍如何安装,安全风险需要自担)
Windows技术交流
2021/06/15
4.8K0
nodejs的错误处理
C++层直接调用Libuv的uv_tcp_connect,并且设置回调是AfterConnect。接着我们看libuv的实现。
theanarkh
2021/04/22
1.4K0
使用内存缓存优化 WordPress 用户会话功能
WordPress 有个用户会话功能,就是在后台 > 用户 > 「我的个人资料」菜单下有个「登出其他设备」的按钮,点击它可以在其他设备上登出,只在此处保留登录状态。
Denis
2023/04/13
4020
使用内存缓存优化 WordPress 用户会话功能
Python 图像处理_图像处理的一般步骤
对我个人而言使用Python图像处理意在取代matlab,集中化使用Python环境保证之后在机器学习和OpenCV的使用上具有一致性,虽然从实验室师兄师姐的口中得知Python的图像处理较之matlab相对复杂(应该只是代码量的问题),但我依然觉得学习python环境比较实用和高效。在进行Python图像处理之前,Pillow是不可或缺的实用性工具,pillow是Python Imaging Library的缩写,Pillow由PIL而来,导入该库使用import PIL。同时感谢Python社区内的翻译工作者,将pillow的英文稳当翻译为汉语文档。传统的PIL库不支持python3,所以使用从PIL派生出来的Pillow库。
全栈程序员站长
2022/11/04
1.4K0
hostmonitor对异常用户会话的监控
1.trade@front,创建/home/trade/monitor目录 2.上传脚本至/home/trade/shell下,
小尘哥
2018/12/25
6310
自然语言处理(NLP)的一般处理流程!
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
mantch
2019/08/29
3.1K0
自然语言处理(NLP)的一般处理流程!
NodeJS多核处理模cluster解读
大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算。所以,有人开发了第三方的cluster,让node可以利用多核CPU实现并行。
用户2936342
2018/08/27
8450
nodejs的事件处理机制
类似于javascript客户端代码中存在由元素触发的事件机制,在nodejs中,也有由对象触发的事件处理机制,比如http.Server对象,就可能会触发'接收到客户端请求request'、'响应客户端请求response'、'连接错误'等各种事件。
前端_AWhile
2019/08/29
7450
Django2.0中文(会话、用户、注册)
//cookie不安全 1、读写cookie: request.COOKIES def show_color(request): if "favorite_color" in request.COOKIES: return HttpResponse("Your favorite color is %s" % request.COOKIES["favorite_color"]) else: return HttpResponse("You don't have a favorite color.")
用户5760343
2022/05/14
5030
Django2.0中文(会话、用户、注册)
PHP会话(Session)实现用户登陆功能
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。 当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。 Session 在 php.ini 是否需要设置呢?一般不需要的,因为并不是每个人都有修改 php.ini 的权限,默认 Session 的存放路径是服务器的系统临时文件夹,我们可以自定义存放在自己的文件夹里,这个稍后我会介绍。 开始介绍如何创建 Session。非常简单,真的。 启动 Session 会话,并创建一个 $admin 变量:
smy
2018/12/24
2.3K0
处理高并发的一般思路
今天看见有人聊目前系统有2亿的PV,该如何优化?当我看到这个话题的时候,突然在想自己工作中也遇到了不少高并发的场景了,所以即兴发挥,在这里简单总结和分享下服务端相关,欢迎指正和补充。
用户1093396
2020/10/29
5300
处理高并发的一般思路
NodeJs 获取 Git 用户和邮箱信息
获取 git config 的路径,一种是项目单独配置的,一种是全局配置的 'use strict'; const fs = require('fs'); const os = require('os'); const path = require('path'); module.exports = function (type) { let configPath = ''; const workDir = process.cwd(); if (type === 'global
子润先生
2021/06/28
2.2K0
NodeJs 获取 Git 用户和邮箱信息
获取 git config 的路径,一种是项目单独配置的,一种是全局配置的 'use strict'; const fs = require('fs'); const os = require('os'); const path = require('path'); module.exports = function (type) { let configPath = ''; const workDir = process.cwd(); if (type === 'global
上山打老虎了
2022/06/15
1.5K0
HanLP 自然语言处理 for nodejs
支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体识别(中国人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、CRF依存句法分析)
IT小白龙
2019/04/24
1.2K0
HanLP 自然语言处理 for nodejs
NodeJS错误处理最佳实践
NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管。但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学。如果你实在没有耐心,那就直接绕过长篇大论跳到“总结”部分吧。
竹清
2018/08/31
1.6K0
NodeJS错误处理最佳实践
点击加载更多

相似问题

日志会话用户NodeJs NestJ

10

NodeJS -没有特快的会话处理

11

NodeJS注销所有用户会话

14

nodejs中的会话处理。CORS问题

11

使用mysql的nodejs会话处理程序

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文