【问题标题】:How does nuxt-auth cookie checks the backend?nuxt-auth cookie 如何检查后端?
【发布时间】:2022-01-11 14:12:18
【问题描述】:

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

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

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

我是 nuxt 的新手,我无法理解 在 nuxt-module 源代码的哪个位置进行后端检查。是在中间件还是存储中?我很困惑。

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

【问题讨论】:

    标签: laravel cookies nuxt.js nuxt-auth


    【解决方案1】:

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

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

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

    否则,global auth middleware 也可用,模块开箱即用。但是,如果您想自制一些东西,可以添加另一个全局变量。

    【讨论】:

    • 我正在使用 nuxt-auth 和 laravelSanctum 策略(所以 cookie)。我正在尝试在 nuxt auth 中间件之上添加另一层身份验证,所以是的,我正在考虑制作另一个全局中间件。能否请您在 github 上指出 nuxt-auth 正在检查后端的部分?我找遍了,我找不到它。它是在 /core/middleware 还是 /core/storage 中完成的,我无法弄清楚。
    • @grimdbx 不确定源代码本身。我从来不需要深入研究模块的源代码。
    猜你喜欢
    • 2022-01-15
    • 2021-05-17
    • 1970-01-01
    • 2021-11-02
    • 2021-05-25
    • 2019-02-21
    • 1970-01-01
    • 2021-12-24
    • 2016-03-04
    相关资源
    最近更新 更多