web-dev-qa-db-ja.com

Laravel 5ユーザーがログインしているかどうかを確認します

私はLaravel 5を初めて使用し、そのAuthプロセスを理解しようとしています。ユーザーがログインしていない場合を除き、ユーザーが自分のページの一部にアクセスできないようにしたいのです。 Route:filterが機能しません。私が間違ったことは何ですか?

Route::filter('/pages/mainpage', function()
{
    if(!Auth::check()) 
    {
        return Redirect::action('PagesController@index');
    }
});
11
Tartar

authミドルウェア を使用する必要があります。あなたのルートに次のように追加してください:

Route::get('pages/mainpage', ['middleware' => 'auth', 'uses' => 'FooController@index']);

またはコントローラのコンストラクタで:

public function __construct(){
    $this->middleware('auth');
}
19
lukasgeiter

これにより、ブレードコードで直接これを行うことができます

@if (!Auth::guest())
        do this 
@else
        do that
@endif
9
jorge gibbs

使用する

Auth::check()

詳細はこちら https://laravel.com/docs/5.2/authentication#authenticating-users 現在のユーザーが認証されているかどうかの判断

8
Ivan

コントローラーでmiddlewareを使用できます

  1. コントローラのすべてのアクションはログインする必要があります
public function __construct()
{
    $this->middleware('auth');
}
  1. または、実際に確認することもできます
public function create()
{
    if (Auth::user()) {   // Check is user logged in
        $example= "example";
        return View('novosti.create')->with('example', $example);
    } else {
        return "You can't access here!";
    }
}
  1. また、ルートで使用することもできます
Route::get('example/index', ['middleware' => 'auth', 'uses' => 'example@index']);
5
Adnan

単一ルートの認証ミドルウェアが必要な場合

// Single route

Route::get("/awesome/sauce", "AwesomeController@sauce", ['middleware' => 'auth']);

複数のルートで認証ミドルウェアが必要な場合は、次を使用します。

// Route group

Route::group(['middleware' => 'auth'], function() {
// lots of routes that require auth middleware
});
2
Khan Shahrukh