laravel5.1でユーザ認証サイトの作り方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# laravelプロジェクト生成 composer create-project "laravel/laravel" your_project_name # アクセスしてみると500エラー。所有者をapacheに変更すればOK http://sample.com/public/ 500 error chown -R apache:apace your_project_name # ユーザ認証が、Usersテーブル生成されてないためエラー。 http://sample.com/your_project_name/public/auth/login Sorry, the page you are looking for could not be found. NotFoundHttpException in RouteCollection.php line 161: # DB接続情報を設定(phpMyAdminなどでデータベースは生成しておく) vi your_project_name/.env DB_HOST=localhost DB_DATABASE= DB_USERNAME=t DB_PASSWORD= # artisanでテーブルを生成(ユーザとパスワードリセットのテーブルはデフォルトで定義されている) php artisan migrate # しかし、laravel5.1からデフォルトのログイン認証はなくなっているので、bestmomo/scafoldというパッケージを使う。 # composerでダウンロード composer require bestmomo/scafold:dev-master # bestmomoが使えるように、アプリの設定ファイルに書き込む vi config/app.php 'providers' => [ # ココの最後の行に追加 Bestmomo\Scafold\ScafoldServiceProvider::class, # View(画面)やassets(画像)をアプリにコピーする。 php artisan vendor:publish Copied Directory [/vendor/bestmomo/scafold/views] To [/resources/views] Copied Directory [/vendor/bestmomo/scafold/views/auth] To [/resources/views/auth] Copied Directory [/vendor/bestmomo/scafold/views/emails] To [/resources/views/emails] Publishing complete for tag []! # アクセス出来るURL一覧を表示 php artisan route:list +--------+----------+------------------------+------+---------------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------------------------+------+---------------------------------------------------------+------------+ | | GET|HEAD | / | | Closure | | | | POST | auth/login | | App\Http\Controllers\Auth\AuthController@postLogin | guest | | | GET|HEAD | auth/login | | App\Http\Controllers\Auth\AuthController@getLogin | guest | | | GET|HEAD | auth/logout | | App\Http\Controllers\Auth\AuthController@getLogout | | | | POST | auth/register | | App\Http\Controllers\Auth\AuthController@postRegister | guest | | | GET|HEAD | auth/register | | App\Http\Controllers\Auth\AuthController@getRegister | guest | | | GET|HEAD | home | | \Bestmomo\Scafold\Http\Controllers\HomeController@index | auth | | | POST | password/email | | App\Http\Controllers\Auth\PasswordController@postEmail | guest | | | GET|HEAD | password/email | | App\Http\Controllers\Auth\PasswordController@getEmail | guest | | | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@postReset | guest | | | GET|HEAD | password/reset/{token} | | App\Http\Controllers\Auth\PasswordController@getReset | guest | # 無事、ログイン画面まで行ける。 # 入力フォームのvalidateなどもしてくれるが、パスワード再発行の画面ではエラーになる…。 http://sample.com/your_project_name/public/home # 実際のページなどでログインチェック vi your_project/app/Http/route.php // ユーザー情報を取得出来なかったら、未ログイン Route::get('/user_data', function(){ $user = \Auth::user(); if ($user) { // return print_r($user); return "Hello $user->name"; }else{ return "Not login"; } }); |
参考サイト:
LARAVE5.1で認証画面の簡単セットアップ
そろそろ暖かくなってきたし CentOS6 に Laravel5 をインストールしてみた