管理者ログインをLaravel 5に組み込む簡単な方法
Authorization can be tricky. There are thousands of posts about how to perform authentication, but actually verifying who someone is and managing user permissions can be a whole can of worms. Fortunately, Laravel has systems in place that make a tiered login system very easy to implement.
Laravel 5 アプリに認証を追加するために必要なのは、1 つのコマンドだけです。
php artisan make:auth
カスタムミドルウェアを使用してLaravel管理ページを作成するための簡単なソリューション
現在、最新リリースの Laravel 5.5 を使用しています. Laravel 5.5 固有の唯一の処理は、フロントエンドの Blade ディレクティブの @guest ヘルパーです.アプリケーションの HTML セクションでは、これらのヘルパーにより、ユーザーがログインしているかどうかを簡単に確認できます.
@auth
// The user is authenticated...
@endauth
@guest
// The user is not authenticated...
@endguest
If you’re not using Laravel 5.5 there are other workarounds but you might as well upgrade to the latest version for the new features!
✌ これを実現する方法は、ユーザー テーブルにタイプ列を追加し、カスタム ミドルウェアを介してユーザーがそのタイプを持っているかどうかを確認することです.派手に聞こえますが、とても簡単です!
1) 必要なタイプを User モデルに追加し、ユーザーが管理者かどうかを確認するメソッドを追加します。
/* app/User.php */
const ADMIN_TYPE = 'admin';
const DEFAULT_TYPE = 'default';
public function isAdmin() {
return $this->type === self::ADMIN_TYPE;
}
2) ユーザー テーブルを作成した移行に type 列を追加します。
/* database/migrations/2014_10_12_000000_create_users_table.php */
$table->string('type')->default('default');
</code></pre>
#### 3) Add a type value to the create method in register controller
<pre><code class="language-php">
/* app/Http/Controllers/Auth/RegisterController.php */
protected function create(array $data) {
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'type' => User::DEFAULT_TYPE,
]);
}
4) カスタム ミドルウェア ファイルを作成して、ユーザーが管理者かどうかを確認します。以下を使用してこのファイルを生成します。
php artisan make:middleware IsAdmin
namespace App\Http\Middleware;
use Closure;
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(auth()->user()->isAdmin()) {
return $next($request);
}
return redirect('home');
}
}
5) 作成したミドルウェアを登録する
/* app/Http/Kernel.php */
'is_admin' => \App\Http\Middleware\IsAdmin::class,
6) ミドルウェアを呼び出すいくつかのルートを追加します
/* routes/web.php */
Route::view('/', 'welcome');
Auth::routes();
Route::get('/home', 'HomeController@index')
->name('home');
Route::get('/admin', 'AdminController@admin')
->middleware('is_admin')
->name('admin');
7) で管理コントローラを作成します
php artisan make:controller AdminController
8) このコントローラーは、管理者に表示させたいビューのダッシュボードを返します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AdminController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function admin()
{
return view('admin');
}
}
🎉 それだけです!
/admin にアクセスし、ログインしていない場合、または管理者としてログインしている場合は、ページにアクセスできません.管理者ユーザーを作成するには、tinker artisan コマンドを使用できます.
$ php artisan tinker
>>> use App\User;
>>>User::where('email', '[email protected]')->update(['type' => 'admin']);
Reference
この問題について(管理者ログインをLaravel 5に組み込む簡単な方法), 我々は、より多くの情報をここで見つけました https://dev.to/muzudre/easy-way-to-build-admin-login-into-a-laravel-5-1181テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol