【问题标题】:How $auth.loggedIn works in nuxt.js?$auth.loggedIn 如何在 nuxt.js 中工作?
【发布时间】:2021-09-16 20:57:23
【问题描述】:

$auth.loggedin 如果用户已通过身份验证,则返回 true,否则返回 false,但 Nuxt 究竟检查什么以将此标志设置为 true 或 false?
Nuxt 如何判断用户是否经过身份验证?
据我了解,它会在发送登录请求后检查来自后端的响应。
但是如果响应只包含用户信息和一个令牌,Nuxt 怎么知道这个用户是经过身份验证的呢?

【问题讨论】:

    标签: nuxt.js


    【解决方案1】:

    这个答案可能会有所帮助:https://stackoverflow.com/a/68081536/8816585

    基本上,您可以通过多种方式使用auth module 进行身份验证。这完全取决于您的方案配置:https://auth.nuxtjs.org/guide/scheme

    您可以使用您的凭据在后端 POST 并查看它是否返回一个积极的访问授权响应,然后使用这些电子邮件 + 密码组合更新 Vuex。或者你也可以直接获取它们,如果它包含在后端响应中。

    所以,基本上模块会查看后端是否有成功响应,如果有,$auth.loggedin 为真,中间件让你通过。

    【讨论】:

    • 但是登录请求只发生一次,所以我得到了一次成功的响应,但是在登录后刷新或移动到其他页面时,nuxt 会再次检查以判断用户是否仍然经过身份验证?
    • 如果之后,您确实刷新了浏览器并丢失了 Vue 状态,您的中间件将看到缺少某些内容并将您踢回 /login 路径。如果您继续在 SPA 中移动,您的状态将保持不变。只有检查令牌过期才有用。如果你想更加安全,你也可以有一个中间件来查看你是否有 4XX 错误,然后再次将用户踢回/login。
    猜你喜欢
    • 2021-03-07
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2021-09-05
    • 2021-10-20
    • 2020-05-31
    • 2020-06-26
    • 2021-05-15
    相关资源
    最近更新 更多