Laravel - 中间件在不应该触发的情况下触发?
Laravel - Middleware triggered while it should not?
我正在使用 Laravel 5.4
和 Vuejs 2.3
以及 VueRouter
我的网站由两部分组成
- example.com
- 示例。com/tools
问题
如果我在 example.com/tools
并且如果我 reload the page
到相同的地址 example.com/tools
中间件 checkUsersPublic
被触发,而它只链接到 /
.
编辑
如果我从 VueRouter.js
中删除 { path: '/tools', component: Stats }
,则不再触发中间件
问题
- 我应该如何更改才能不触发中间件?
Laravel
中的路线
Route::get('/', 'HomeController@home')->middleware('checkUserPublic')
Route::get('/tools', 'StatsController@home')->middleware('checkUserStats')
Vue 路由器
const routes = [
{ path: '/', component: App },
{ path: '/tools', component: Stats },
];
中间件checkUsersPublic
class checkUsersPublic
{
public function handle($request, Closure $next)
{
if(auth()->check() && auth()->user()->public_only) {
return $next($request);
}
if(Auth::check()) {Auth::logout();}
return $next($request);
}
}
我没有在 Laravel
中做中间件,而是在 beforeEnter
守卫
中做的 vue-router
我正在使用 Laravel 5.4
和 Vuejs 2.3
以及 VueRouter
我的网站由两部分组成
- example.com
- 示例。com/tools
问题
如果我在 example.com/tools
并且如果我 reload the page
到相同的地址 example.com/tools
中间件 checkUsersPublic
被触发,而它只链接到 /
.
编辑
如果我从 VueRouter.js
中删除 { path: '/tools', component: Stats }
,则不再触发中间件
问题
- 我应该如何更改才能不触发中间件?
Laravel
中的路线Route::get('/', 'HomeController@home')->middleware('checkUserPublic')
Route::get('/tools', 'StatsController@home')->middleware('checkUserStats')
Vue 路由器
const routes = [
{ path: '/', component: App },
{ path: '/tools', component: Stats },
];
中间件checkUsersPublic
class checkUsersPublic
{
public function handle($request, Closure $next)
{
if(auth()->check() && auth()->user()->public_only) {
return $next($request);
}
if(Auth::check()) {Auth::logout();}
return $next($request);
}
}
我没有在 Laravel
中做中间件,而是在 beforeEnter
守卫
vue-router