0

我正在尝试创建一个受限区域,登录用户需要输入代码才能访问它。我正在使用 laravel sanctum 和 nuxt(ssr) 与 nuxt-auth 模块。我正在尝试了解 nuxt-auth 模块如何在用户登录或未登录时检查后端,以便我可以在我自己的受限区域访问中复制它。

到目前为止,我注意到,如果我在FLUSHALL刷新前端时使后端的用户会话(redis 会话)无效,那么 nuxt-auth 会以某种方式知道用户已注销并且用户也会在前端注销。

如果我删除/api/user路由也是一样,nuxt 认为用户已注销。但是当路由处于活动状态时,我在开发网络选项卡中看不到正在访问的路由。

我是 nuxt 的新手,我不明白nuxt-module 源代码在哪里进行后端检查。是在中间件还是存储中?我很困惑。

到目前为止,在后端,我正在检查用户代码并在与用户登录情况类似的会话中保存一个 ID。现在我正在尝试制作一个可以验证这一点的 nuxt 中间件。

4

1 回答 1

0

Nuxt-auth 通常会将 JWT 令牌存储在 cookie 中(这当然取决于您正在执行的配置!)并且所有这些都通过到达后端路由来检查。

如果您刷新 SPA 并刷新数据库或中断路由,模块将擦除客户端存储 + 将loggedIn状态设置为false.

通常,您确实有一个 JWT 令牌一段时间(可能是 1 小时左右),如果它没有过期,您将不会收到任何网络请求。如果您删除 JWT 令牌,您应该会看到一个网络请求。

否则,还可以使用模块开箱即用的全局auth中间件。但是,如果您想要自制的东西,您可以添加另一个全球性的。

于 2021-12-06T12:14:30.557 回答