问题标签 [session-store]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4643 浏览

ruby-on-rails - Rails 如何使用内存中的 SessionStore

我正在寻找一种在 Ruby on Rails 应用程序中使用基于内存的会话存储的方法。会话包含一个只有在用户登录时才能解密的主密钥。这个密钥应该在整个会话期间都可用。

由于此密钥的性质,会话的内容不应存储在本地的任何地方。此外,我不想将内容传输到任何外部应用程序,例如 memcached。

因此,是否可以只使用类似于 PHP 或 Java SE 的基于内存的会话存储?

0 投票
1 回答
437 浏览

ruby-on-rails-4 - 使用会话存储的 Rails 集成测试

我的应用程序正在使用带有自定义会话类的 ActiveReccord 会话存储。这在生产和开发中都运行良好。

但是,在运行集成测试时,这似乎不起作用。根本没有创建会话。由于我依赖于自定义会话类,因此我无法切换到 cookie-store 进行测试。

谁能帮我这个?

0 投票
1 回答
1294 浏览

node.js - 表达会话文件存储会话计数而不是查看计数

我在我的节点 js 应用程序中使用 express-session 进行会话管理。使用会话文件存储。我想计算会话数,以限制 maxAllowed 会话后的新会话。

有没有支持这样做的方法?我不想要查看次数,我只想要会话次数。

0 投票
1 回答
5381 浏览

ruby-on-rails - 将会话和 session_store 添加回 Rails 5 API(会话不持久)

我正在尝试在 Rails 5 API 中设置基于会话的基本身份验证策略。

我想我主要是遇到了配置混乱,因为每个请求都会生成一个新会话。

我已将 cookie 和 cookie 存储中间件添加回应用程序

config/application.rb

看来我必须将 api_only 设置为 false 否则我会得到#<ActionDispatch::Request::Session:0x7fd40b2eec80 not yet loaded>

我添加了 session_store 初始化程序和 cookie_serializer:

config/initializers/session_store.rb

config/initializers/cookie_serializer.rb

我没有在数据库中存储会话。

我有一个会话控制器,当用户成功通过身份验证时,它将 current_user_id 键设置为会话对象。

app/controllers/sessions_controller.rb

行为

我使用 bcrypt 和 has_secure_password 设置的身份验证策略有效。在查看 session#create 中的会话时,它成功地将用户 ID 设置为会话。

会话#创建

但是会话似乎不会持续存在或存储在浏览器中。登录后的 sessionStorage 长度为 0

当我注销并检查会话时,它会创建一个新会话。

会话#destroy

问题

不确定我缺少什么配置或使用 api 设置此功能时出错。

0 投票
0 回答
330 浏览

ruby-on-rails - 从 :cookie_store 切换到 :active_record_store 时如何防止 InvalidAuthenticityToken 异常?

我正在将会话存储从 :cookie_store 切换到 :active_record_store。我注意到当我第一次尝试登录时,我收到了一个ActionController::InvalidAuthenticityToken. 我猜这是因为我的计算机上存在来自旧 cookie_store 的 cookie?从我的 chrome 浏览器设置中删除它后,我可以正常登录。我想有一种无缝的方式来防止我的所有用户在正确登录之前必须删除他们的 cookie。但是我该怎么做呢?

0 投票
0 回答
541 浏览

ruby-on-rails - 如何在请求结束时删除 Rails (ActiveRecord) 会话

我们使用带有设计和 cancancan gem 的 Rails。我们的用户会话使用 ActiveRecord SessionStore 存储。

在我们的前端 (JavaScript) 代码中,我们最近开始使用 Web Worker 向我们的后端发出 Ajax 请求。这意味着这些请求不再与来自“主”线程的请求属于同一会话。

反过来,这意味着我们的数据库会话表会随着来自不需要保留的 web worker 请求的“临时”会话而快速增长。这些临时记录的增长速度远高于我们之前的增长速度,所以我们想摆脱这些不必要的记录。

我们可以在后端收到来自网络工作者的请求时识别它们。

删除不需要的记录的一种方法是

  1. 创建我们自己的 SessionStore 类并添加一个属性来指示特定会话的临时性质
  2. 有一个计划任务删除这些记录。

我们认为这是一个“B计划”。

我们希望在请求处理结束时删除临时会话。我们在应用控制器的 after_action 中添加了销毁会话的代码;

这确实会导致会话记录的删除,但是,在删除记录后会立即创建一条新记录,因此记录的数量仍在不断增长。

我们如何在请求结束时删除临时会话记录?

0 投票
1 回答
2550 浏览

session - 如何使用 connect-redis 在快速会话中使用 redis 存储?

我正在尝试寻找一个教程来解释您如何使用快速会话在 redis 存储中设置用户会话。我知道如何设置它,但我不知道如何访问 redis 存储以及如何从该 redis 存储中存储和检索值?

0 投票
2 回答
993 浏览

ruby-on-rails - 在子域之间共享会话,设计身份验证已完成 401 未授权

我有 2 个 ruby​​ rails 应用程序,每个都有一个用于身份验证的设计 gem,我的目标是使用共享会话实现简单的 SSO(单点注销)。

其中一个public.admin.comprivate.admin.com 我正在使用以下配置:

session_store.rb

配置/secrets.yml

我也在两个应用程序中使用相同的secret_key_base

设计.rb

应用程序.rb

我可以登录其中一个,一旦我打开另一个域,会话就会打开,并且打开的Completed 401 Unauthorized会话关闭并从第一个域注销。

我尝试过使用domain: 'admin.com', domain: :all,and ..session_store :redis_store..,但总是得到相同的结果。

谁能帮我找到问题,或者提出更好的解决方案,我将不胜感激。

0 投票
0 回答
348 浏览

node.js - 运行多个 socket.io 服务器并从一个快速网站连接到它们

我需要制作页面上使用的系统:https ://www.csgohunt.com/

他们有 3 个 socket.io 服务器在运行:ws.csgohunt.com、chat.csgohunt.com、csgohunt.com

前两个似乎在不同的 http 服务器上运行,但是当您从网站csgohunt.com连接到所有 3 个套接字(您可以从网络选项卡中看到它)时,所有 3 个套接字都在通信。

更有趣的是,即使是在不同 http 服务器上运行的 2 个套接字也共享快速会话,并且它们知道用户何时登录,何时不登录。

我有工作 Express + Socket.IO + Passport 应用程序,当您连接到在与 express 相同的 http 服务器上运行的套接字服务器时,会话共享工作正常。但是,当我在不同的 http 服务器(但相同的应用程序)上启动 nsecond 套接字服务器并使用相同的 sessionStore 时,第二台服务器看不到会话。

实现这种系统的最佳方法是什么?我不想为所有东西都配备 1 个套接字服务器。

编辑:我发现他们使用 Heroku。这是否让他们有可能做我所描述的事情?我完全没有经验。

0 投票
0 回答
147 浏览

ruby-on-rails - 使用 Redis 作为会话存储是否会减轻会话重放攻击?

在 Ruby on Rails 安全文档中,它写道,使用 CookieStore 作为会话存储对重放攻击是开放的:http: //guides.rubyonrails.org/security.html#replay-attacks-for-cookiestore-sessions

  1. 如果我只保存 session_id 是真的吗?
  2. 将会话存储更改为 Redis 会缓解漏洞吗?看到这个提交:https ://gitlab.com/gitlab-org/gitlab-ce/commit/ba7c1764be87f272759471bde01b92dcc147e952