12_login - hpscript/laravel GitHub Wiki
$ php artisan make:auth
$ php artisan migrate
mysql> select * from users;
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| id | name | email | password | remember_token | created_at | updated_at |
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| 1 | peter | [email protected] | $2y$10$XeLPWQLyU1h2HpD7QAta3uOLUiXZyqpy7SSYRc4tkKrzrDUr3tOJS | NULL | 2019-12-11 12:34:31 | 2019-12-11 12:34:31 |
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
1 row in set (0.00 sec)
Route::get('/', function () {
return view('welcome');
});
Route::auth();
Route::get('/home', 'HomeController@index');
Route::auth();で、login, logout, pasword/*, registerなどのURIをルーティングしている
$ php artisan route:list
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | home | | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | login | | App\Http\Controllers\Auth\AuthController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
| | GET|HEAD | logout | | App\Http\Controllers\Auth\AuthController@logout | web |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | web,guest |
| | GET|HEAD | register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\AuthController@register | web,guest |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
デフォルトのビューは、resources/viewの以下のファイル
auth/emails/password.blade.php
auth/login.blade.php
auth/passwords/email.blade.php
auth/passwords/reset.blade.php
auth/register.blade.php
home.blade.php
welcome.blade.php
ログインの処理はAuthController.phpでしている
同様にPasswordController.phpも使用
mysql> select * from users;
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| id | name | email | password | remember_token | created_at | updated_at |
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| 1 | peter | [email protected] | $2y$10$XeLPWQLyU1h2HpD7QAta3uOLUiXZyqpy7SSYRc4tkKrzrDUr3tOJS | NULL | 2019-12-11 12:34:31 | 2019-12-11 12:34:31 |
+----+-------+-----------------+--------------------------------------------------------------+----------------+---------------------+---------------------+
remember_tokenのカラムは、remember meにチェックを入れると、保存される。
$this->middleware('auth');で認証処理を実装
ログインしていないと、login.blade.phpにリダイレクト
public function __construct()
{
$this->middleware('auth');
}
Controller: HomeController.php
use Illuminate\Support\Facades\Auth;
public function index()
{
$user = Auth::user();
return view('home', compact('user'));
}
View: home.blade.php
<div class="panel-body">
You are logged in {{$user->name}}!
</div>
Route
Route::get('/', function () {
// return view('welcome');
if(Auth::check()){
return "the user is logged in";
}
});
Route::get('/', function () {
// return view('welcome');
// if(Auth::check()){
// return "the user is logged in";
// }
$user = "";
$password = "";
if(Auth::attempt(['username'=>$username, 'password'=>$password])){
return redirect()->intended('/admin');
}
});