Laravel 6.x/7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제5회】

제작 환경



Windows 10
Laravel : 6.18.35
Laravel/ui : 1.0
Laravel-mix : 5.0.1
Bootstrap : 4.0.0
MDBootstrap : 4.19.1
chart.js : 2.9.3
XAMPP
PHP : 7.4.3
Visual Studio Code

관련 기사



Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제1회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제2회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제3회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제4회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제6회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【제7회】
Laravel 6.x / 7.x 멀티 인증 설정 방법 사용자와 관리자를 나누어 로그인 【최종회】

소개



이 기사는 프로그래밍을 시작한지 ​​얼마 안된 아마추어가, 할 수 있었던 것을 메모하는데 이용하고 있습니다.
내용에 오류가 있을 수 있습니다.

기사를 작성할 때는 다음 사이트를 참고로 하고 있습니다.
이쪽이 상세하므로, 우리 쪽에서 덧붙이고 있는 요건이 불필요하면, 이하를 참고로 하는 것이 좋다고 생각합니다.

길어지기 때문에 여러 번 나누어 기사를 게시합니다.

트레잇 방법 덮어쓰기



app\Http\Controllers\Admin\Auth 에 있는 RegisterController.php를 열고 다음을 추가합니다.
이 설명에서는 RegistersUsers 트레이트의 showRegistrationForm을 덮어씁니다.

RegisterController.php
public function showRegistrationForm()
{
    return view('admin.auth.register');
}

create 메소드 수정



RegisterController.php 를 다음과 같이 수정합니다.
use App\Models\User;를 삭제하거나 주석 처리하십시오.

변경 전



RegisterController.php
use App\Models\User;

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

변경 후



RegisterController.php
use App\Models\Admin;

protected function create(array $data)
{
    return Admin::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

리디렉션 대상 변경



app\Providers에서 RouteServiceProvider.php를 엽니다.


열면 public const ADMIN_HOME='/admin/home';을 다음과 같이 추가합니다.

RouteServiceProvider.php
    /**
     * The path to the "home" route for your application.
     *
     * @var string
     */
    public const HOME = '/home';
    public const ADMIN_HOME = '/admin/home';

추가가 완료되면 app\Http\Controllers\Admin\Auth에 있는 RegisterController.php를 다시 열고 다음을 변경합니다.

RegisterController.php
    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
    protected $redirectTo = RouteServiceProvider::ADMIN_HOME;

컨트롤러 및 라우팅 추가



새 AdminHomeController를 만듭니다.
터미널에서 다음을 수행합니다.
php artisan make:controller Admin/AdminHomeController

만든 후 AdminHomeController.php를 열고 HomeController.php를 기반으로 내용을 다음과 같이 작성합니다.

AdminHomeController.php
namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class AdminHomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth:admin');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        return view('admin.home');
    }
}

그런 다음 web.php를 열고 라우팅을 추가합니다.

web.php
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function(){
    Auth::routes();

    Route::get('/home', 'AdminHomeController@index')->name('Admin_home');
});

이번은 여기서 끝납니다.
다음에 계속된다.

좋은 웹페이지 즐겨찾기