如何检查用户登录? 如果用户未登录,则用户无法提交评论,并重定向到登录页面进行登录。
我试过了,但没有奏效
使用身份验证中间件保护您的路由:
Route::get('comments', function () {
// Only authenticated users may enter...
})->middleware('auth');
或作为一个组:
Route::group(['middleware' => ['auth']], function () {
Route::post('comments', 'CommentController@store');
});
然后 laravel 会自动将未经身份验证的用户重定向到您的"登录名"命名路由。(或在 app/Http/Middleware/Authenticate.php的 redirectTo(( 方法中指定自定义路由(
从 vue 中的 ajax 调用中,您可以侦听 403 响应代码,然后将用户重定向到登录 URL。但是,如果您将主应用程序的路由放在身份验证中间件中,您将永远不必担心这部分,因为 laravel 会自动重定向用户。
这实际上取决于您如何构建应用程序,如果它是一个水疗中心,您应该使用诸如 laravel 气闸或护照之类的东西,而不是默认的登录逻辑。
如果这是一个多页应用程序,则应包含一个简单的身份验证中间件。
有了这个,您可以简单地在刀片文件中告诉应包含或不包含哪些元素,如下所示:
@auth
<h1>Logged in</h1>
@endauth
你可以有一个简单的路线来检查你是否登录,这取决于结果你可以做一些魔法。
您的路线:
use Auth;
Route::get('is-auth', function () {
$auth = Auth::user();
return $auth;
});
现在,将用户保存到全局窗口对象。
在 generel 中,您可以做这样的事情,但我不推荐以下想法。
然后,您可以向服务器发送请求,我不建议这样做,并在您是否登录时获得结果。
axios.get('is-auth')
.then(response => {
if(response.data) {
console.log("not logged in");
}
console.log("logged in");
});
.catch(error => console.log("error");