【问题标题】:Unauthorized error after several hours of inactive laravel sactum with vuejs使用 vue js 几个小时不活动 laravel sanctum 后出现未经授权的错误
【发布时间】:2021-07-13 01:32:14
【问题描述】:

我是 vuejs 的初学者。我正在使用 Vuejs 使用 laravel sanctum 作为基于令牌的身份验证的包来执行我的第一个应用程序。我的问题是当用户登录并保持非活动状态几个小时而没有从应用程序注销时,尝试访问受保护的路由后出现 401(未经授权)错误。我必须注销并再次登录才能完成我的工作。 我正在使用 vuex 状态管理库来保存应用程序状态。
routes/api.php

Route::post('/login','API\AuthController@login');
 Route::middleware('auth:sanctum')->group(function (){  
       Route::get('/logout','API\AuthController@logout');});

以下是我的登录方式

axios.get('/sanctum/csrf-cookie').then(response => {
                // Login...
                this.$store.dispatch('login',credentials)
                   .then((res) => {
                       this.$store.commit("SET_LOADING",false);
                       if( this.isAuthenticated && config.getToken() !== 'undefined'){
                            this.$router.push({ name: 'home'});
                            window.reload;
                       }
                   });});

我的 vuex store.js

export default new Vuex.Store({
modules: {
    auth
},
plugins: [
    createPersistedState(
        {
            storage: window.localStorage
        }
    )],})

我试图将我的令牌存储在本地存储中,但我认为这不是最好的方法...... 我想要的是让用户登录很长时间,直到他/她退出

【问题讨论】:

  • 您能告诉我您的config/sanctum.php 文件中expiration 的值吗?
  • config/sanctum.php中expiration的值为null

标签: laravel vue.js vuex laravel-sanctum


【解决方案1】:

谢谢你,我得到了自己的答案。基于以下来自 Laravel Sanctum 官方文档的声明

当然,如果您的用户的会话由于缺乏活动而过期,那么对 Laravel 应用程序的后续请求可能会收到 401 或 419 HTTP 错误响应。在这种情况下,您应该将用户重定向到您的 SPA 的登录页面。

收到 401 0r 419 HTTP 响应后,我会将用户重定向到登录表单

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2020-06-19
    • 2020-12-17
    • 2023-03-05
    • 2014-11-03
    相关资源
    最近更新 更多