#laravel-5-boilerplateとは
機能のGitHabのreadmeに詳細が書いてあります
https://github.com/rappasoft/laravel-5-boilerplate
今回はロール・パーミッション認証とOAuth認証を実装するために利用しました
ロール・パーミッション認証については以下のサイトを参考にしました
http://kore1server.com/161
また、OAuthのみを実装したい場合はこちらのサービスプロバイダーを利用するのもよい
https://github.com/oriceon/oauth-5-laravel
#インストール
アプリケーションディレクトリに移動
git clone https://github.com/rappasoft/laravel-5-boilerplate.git
composer install
npm install
cp .env.example .env
php artisan key:generate
データベースの設定を.envに書き込む
DB_HOST=localhost
DB_DATABASE=laravel
DB_USERNAME=homestead
DB_PASSWORD=secret
migrationとseedingを実行
php artisan migrate
php artisan db:seed
###storage/のパーミッションがおかしい時は
chmod -R 777 storage
###php-mcryptでエラーが出るのでconfig/app.phpを編集
'cipher' => MCRYPT_RIJNDAEL_128,
'cipher' => 'AES-256-CBC',
これでトップ画面にアクセスできるようになると思います
初期ユーザーはdatabase/seeds/Access/UserTableSeeder.phpで確認できます。
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon as Carbon;
class UserTableSeeder extends Seeder {
public function run() {
if(env('DB_DRIVER') == 'mysql')
//①データベースの外部キー制約を解除
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
if(env('DB_DRIVER') == 'mysql')
//②テーブルの中身を全削除
DB::table(config('auth.table'))->truncate();
else //For PostgreSQL or anything else
DB::statement("TRUNCATE TABLE ".config('auth.table')." CASCADE");
//Add the master administrator, user id of 1
$users = [
[
'name' => 'Admin Istrator',
'email' => 'admin@admin.com',
'password' => bcrypt('1234'),
'confirmation_code' => md5(uniqid(mt_rand(), true)),
'confirmed' => true,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
],
[
'name' => 'Default User',
'email' => 'user@user.com',
'password' => bcrypt('1234'),
'confirmation_code' => md5(uniqid(mt_rand(), true)),
'confirmed' => true,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
],
];
DB::table(config('auth.table'))->insert($users);
if(env('DB_DRIVER') == 'mysql')
//①データベースの外部キー制約を設定
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
}
}
①外部キー制約に引っかかってテーブルが削除できないときの対策
DB::statement(''); //直接Queryを実行
DB::statement('SET FOREIGN_KEY_CHECKS=0;'); //外部キー制約無効
DB::statement('SET FOREIGN_KEY_CHECKS=1;'); //外部キー制約有効
②TRUNCATE TABLE命令は全行削除の機能しか持っていないため、テーブルのレコードを記録する領域(データページ)の割り当てを解除して一気にレコードを消滅させます。従って、TRUNCATE TABLEの方がDELETEより高速に削除できます。
seedingを確認すると初期ユーザーは
use@user.comとadimin@admin.com
パスワードは共に1234だとわかります
実際にログイン出来ることが確認できます