问题标签 [koa-session]

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 投票
1 回答
1201 浏览

javascript - Koa-session 在附加对象后被重置?

我有一个控制器,它查找一个角色,然后用它做一些事情,控制器看起来像:

当它处理时,ctx.session.foundChar = foundChar它似乎出于某种原因重置了我的会话,并且记录会话显示{}而不是

但如果我改变ctx.session.foundChar = "Hello";< 工作得很好。

我不知道会话是否存在数据限制或其他问题,或者这不是问题,express-session但我正在尝试将其全部转换为 Koa,无论如何我不确定为什么我的会话会被重置。

foundChar外观示例

所以这会正确记录,但是在刷新页面后我不再经过身份验证并且ctx.session{}

0 投票
2 回答
626 浏览

node.js - 如何从 socket.io 实例中的 koa-session 获取会话信息?

如何在 socket.io 实例中使用来自模块koa-session的会话信息,例如

在我的 app.js

我的 sockets.js 文件

0 投票
1 回答
3685 浏览

session-cookies - 在 Strapi 中启用用户会话

我想为每个使用 URL “/auth/local” 请求令牌的用户启用会话,这是 Strapi 提供的默认 API。我猜 Strapi 默认配置了 Koa 会话,但默认情况下没有返回会话 cookie 作为响应。

在 Strapi 中启用会话管理的最佳方法是什么?任何人都可以分享他们在这方面的经验吗?

0 投票
1 回答
1075 浏览

koa - koa session过期事件

我试图在 koa 会话到期时记录一条消息。但是为 expire 事件添加一个监听器似乎对我不起作用。

以下是示例代码。将 2 分钟设置为会话的 maxAge。

在这里,每次我在浏览器中刷新页面 2 秒后,我都可以看到“视图”值设置回 1,这意味着上一个会话已过期。但是作为过期事件一部分的日志语句没有被击中。可能是添加事件侦听器的方式是错误的。有人可以帮忙吗?

0 投票
1 回答
2628 浏览

vuejs2 - 重定向后 Koa ctx.session 丢失

我有两个 Node.js 服务器应用程序。第一个在 localhost:8081 上运行 Koa.JS,而第二个在 localhost:8080 上运行 Vue.JS。在两个服务器中,我使用的是 HTTP 而不是 HTTPS。

Koa.JS 服务器使用 Passport.JS 执行 oAuth2 登录流程,并提供端点以从 API 获取数据并将承载令牌传递给授权标头。

Vue.js 服务器负责客户端代码。它使用 axios 库调用 Koa 端点。

如果我打开浏览器,并针对 Koa 服务器测试登录流程,一切都很好并且工作正常。以下是步骤:

  1. 本地主机:8081/api/oauth/authenticate

    /li>
  1. 用户登录并授予访问权限
  2. 完成后,回调被称为 localhost:8081/api/oauth/callback

    /li>
  1. 会话与用户信息一起保存
  2. 用户打开新选项卡以转到 localhost:8081/api/user/profile

    /li>
  1. Koa 服务器调用另一个 API 来检索用户配置文件数据,Vue.js 应用程序得到一个正确的 JSON 响应

但是,如果我执行以下操作, ctx.session 会丢失:

  1. 导航到 localhost:8080(Vue.js 服务器)
  2. 通过重定向到 Koa 端点 localhost:8081/api/oauth/authenticate 来执行登录
  3. 登录并授予访问权限
  4. 在 Koa 上 /callback 重定向回 l​​ocalhost:8080/auth?isUserLoggedIn=true
  5. 在 Vue 应用程序中,使用 this.$route.query.isUserLoggedIn 检索查询参数,如果为 true,则调用 Koa 端点以获取用户配置文件数据 localhost:8081/api/user/profile

    /li>

最后一步返回 401 Unauthorized。

经过进一步调查,具有配置文件端点的 Koa 路由位于 appRoutes 中间件中。该中间件紧跟在 app.use(requireLogin) 中间件之后,该中间件检查会话是否经过身份验证 (ctx.isAuthenticated())。

这是发生 401 错误的地方,因为此时 ctx 会话为空。

我在处理某种时间问题吗?我尝试在我的 Koa server.js 文件中注释掉头盔中间件,但没有帮助。

请注意,如果我在同一个浏览器会话中打开一个新选项卡并转到 localhost:8081/api/user/profile 它工作正常。仅当从 Vue.js 调用此端点时,它才会由于 ctx.sesssion 为空而失败。

知道是什么将 ctx.session 重置为 null 吗?

0 投票
2 回答
820 浏览

node.js - koa-passport logout() 没有清除会话

我正在使用 koa、koa-passport 和 koa-session 来记录用户,这些用户工作正常,但是当我调用 ctx.logout() 时,用户可以刷新并仍然登录。似乎 ctx.session 和/或 cookie 是没有被正确清除。

使用 Postman 发出请求时仍然失败。

我发现了很多关于 Express 的例子,包括以下但对 Koa 没有任何运气:https ://github.com/expressjs/cookie-session/issues/104

0 投票
1 回答
166 浏览

javascript - Koa 会话根据请求创建新会话?

我正在设置一个以 Koa 作为后端的 Vue 应用程序。我已经实现了一个简单的登录系统,使用 koa-session 进行会话。当我直接访问服务器(实际上是导航到我的服务器端口并执行请求)时,这一切都很好,但是当我用来fetch从我的前端端口访问数据时,它不会将每个提取都召回为同一个会话并创建一个每次都有新的会话。这是有问题的,因为它没有检测到用户已登录。最终发生的是,每次我访问 API 时都会创建一个新的会话密钥,即使没有刷新页面也是如此。

这是我的 Koa 会话配置文件:

0 投票
1 回答
3482 浏览

node.js - 如何在会话中访问令牌(Shopify 访问令牌)

我主要在前端工作,所以我对 NodeJS 不是很熟悉。我正在开发 Shopify 自定义应用程序,此应用程序的目的是在下订单时会收到 webhook 请求,并通过该请求将一些数据发送到其他 API(计费应用程序)

我用shopify app cli构建了shopify app,我的server.js文件是这样的;

createShopifyAuth()方法使用我的应用程序密钥和应用程序 api 密钥获取 accessToken,我可以在afterAuth()方法中使用它,但我还需要在方法中使用该令牌router.post()才能从 Shopify Admin API 获取更多信息。

根据 Shopify 文档(或我的理解),该密钥在会话中可用,但我如何访问该会话数据?或者我可以在什么中使用该令牌router.push()

0 投票
0 回答
34 浏览

session - 无法覆盖 Koa/next.js 中的会话

我正在使用koa,koa-session和.koa-routernext.js

授权时,ctx.session.subscriber = false

我正在尝试更新路由器内的会话并与所有路由共享新值(这是会话的目的)

当我从 Next.js 调用“/api/test”时,会话会更新,但不会保留新值,如果我调用“/api/another-route”,则 ctx.session.subscriber 为 false再次。我们不会更改代码中其他地方的值。

关于如何解决这个问题的任何想法?

谢谢您的帮助。