正如标题所述,我有点困惑如何根据用户是否登录并使用 Laravel 的 Auth 门面进行身份验证,使用 if/else 语句来处理我的 Vue 组件中的方法。我正在发出各种 Axios 请求,我需要根据用户是否登录来允许/禁止这些请求。
我有 VUEX 设置,并认为我可以以某种方式使用本地存储来获得 isLoggedin 的状态,例如与 Laravel 一起使用。但我不知道这是否是正确的方法,或者是安全的,并且大概 Laravel 已经存储了它的身份验证。那么我可以直接在 Vue 中访问吗?
这里有一些我认为不是最好的不干净的解决方案 - https://laracasts.com/discuss/channels/vue/hide-button-if-user-is-logged-with-laravel-and-vuejs
我找不到任何例子:(
原文由 Jquestions 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常从您的控制器中,您将经过身份验证的用户对象传递到视图中,然后将其存储在 javascript 变量中
控制器:
如果用户返回一个对象或 null,您将知道用户是否已通过身份验证,其中 null 表示没有用户通过身份验证。
在您的刀片中,将
auth_user
分配给一个 javascript 变量:你的 vuex 存储对象至少应该是这样的:
然后在您的 Vue 根组件中,获取
auth_user
并将其保存到存储中:您现在基本上有一个
getter
称为this.$store.getters.isLoggedIn
您可以在应用程序中使用它来检查用户当前是否登录。例如: