Laavel 개발: 2. 사용자 인증 및 관리 화면 만들기
개시하다
이쪽이야. 계속해.
사용자와 관리자의 인증을 구분하기 위해'clients'를 사용자의 관리표로 추가했습니다.
화면 관리에는 "Voyager"가 사용됩니다.
환경:
OS : macOS High Sierra 10.13.6
MAMP : 5.1
Laravel : 5.7.6
DB 설정
MAMP를 실행하면 MAMP의 Top 화면이 표시됩니다.MySQL에 대한 설정 정보가 표시됩니다.
이쪽의'phpMyAdmin'링크에서 phpMyAdmin을 표시하여 프로젝트에 사용할 데이터베이스를 만듭니다.
데이터베이스를 만든 후.env 를 편집합니다.
APP_URL=http://localhost:8888 // MAMPで設定されているPORTに変更
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel // DB名
DB_USERNAME=root
DB_PASSWORD=root
사용자 인증
인증 기능 추가
Laavel 표준 인증 기능 추가
$ php artisan make:auth
사용자 모델 생성하기
사용자는 Center 테이블에서 관리되며 표준 users 테이블은 관리자가 관리합니다.
php artisan make:model Client -m
디렉토리에 마이그레이션 파일이 생성되었습니다.DATE_TIME_create_users_table.php 내용TIME_create_clients_table.php로 복사합니다.<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateClientsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('clients', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('clients');
}
}
옮기다
$ php artisan migrate
phpmyAdmin으로 확인하면 양식이 작성되었는지 확인할 수 있습니다.인증표를 users에서clients로 변경
「/config/auth.php」
// デフォルトの認証ガード
'defaults' => [
// 認証ガードを変更する。guardとpasswordsの設定は以下に記述します
'guard' => 'clients',
'passwords' => 'clients',
],
// 認証ガード
'guards' => [
...
// 新しく認証ガードを追加します
'clients' => [
'driver' => 'session',
'provider' => 'clients',
],
],
// 認証プロバイダー
'providers' => [
...
// 新しく認証プロバイダーを追加します。
'clients' => [
'driver' => 'eloquent',
'model' => App\Client::class,
],
],
// 認証パスワード
'passwords' => [
...
//password追加
'clients' => [
'provider' => 'clients',
'table' => 'password_resets',
'expire' => 60,
],
],
·기본 인증 보호를 이번에 새로 추가된'클라이언트'로 변경합니다.Register Controller 편집
계정을 추가할 때 처리를 클라이언트로 변환하려면 Register Controller를 편집합니다.
「/app/Http/Controller/Auth/RegisterController.php」
//use App\User;
use App\Client;
...
class RegisterController extends Controller
{
...
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
// メールアドレスのユニークをclientテーブルに変更
'email' => 'required|string|email|max:255|unique:clents',
'password' => 'required|string|min:6|confirmed',
]);
}
...
protected function create(array $data)
{
// モデルを変更
return Client::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
센터 모델 편집하기
User 모델을 참조하여 Client 모델을 편집합니다.
「/app/Client.php」
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Client extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
확인
「
오른쪽 위의 Register 메뉴를 클릭하여 로그인 화면에서 사용자를 추가합니다.
무사히 접속하면 완성입니다.
화면 관리
다음은 관리화면 제작.이번에는 보일러를 사용해 간단하게 화면을 관리하고 싶다.
Voyager 설치
명령에서 Voyagaer를 설치합니다.
$ composer require tcg/voyager
$ php artisan voyager:install
관리 화면과 사용자에 의해 세션 쿠키 분리
「/app/.env」
//追記
SESSION_COOKIE=auth
SESSION_COOKIE_ADMIN=auth-admin
「/config/session.php」<?php
$conf = [
...
];
// 管理画面のセッションクッキーを変更する
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if (strpos($uri, '/admin/') === 0 || $uri === '/admin') {
$conf['cookie'] = env(
'SESSION_COOKIE_ADMIN',
str_slug(env('APP_NAME', 'laravel'), '_').'_admin_session'
);
}
return $conf;
관리 화면 인증 보호 변경
「/config/auth.php」
<?php
$conf = [
...
];
// 管理画面の場合は、デフォルトの認証ガードをuserに変更する
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if (strpos($uri, '/admin/') === 0 || $uri === '/admin') {
$conf['defaults'] = [
'guard' => 'web',
'passwords' => 'users',
];
}
return $conf;
관리자 계정 추가
$ php artisan voyager:admin [email protected] --create
Enter the admin name:
> admin
Enter admin password:
>
Confirm Password:
>
Creating admin account
The user now has full access to your site.
명령에 관리자 계정을 추가합니다.확인
「
관리 화면을 표시하고 아까 추가된 관리자 계정으로 로그인하면 완성됩니다.
사용자 관리
측면 메뉴의 Tools&Database에서 테이블을 관리할 수 있는 관리 화면에 로그인합니다.
목록에서 clients의 "Add BREAD to this table"을 클릭하여 BREAD를 추가합니다.
편집 화면을 표시하고 맨 아래로 스크롤한 다음 Submit을 클릭합니다.
일람에서 사용자 정보를 볼 수 있다.
참조:
Reference
이 문제에 관하여(Laavel 개발: 2. 사용자 인증 및 관리 화면 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/PKunito/items/8cc48dae04e565fcb447텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)