使い方、ざっくりした流れ
1.laravel/uiライブラリをインストール
変更されるファイル
・composer.json
・composer.lock
composer require laravel/ui
2.LOGIN機能&テーブル作成
php artisan ui vue --auth
追加されるファイル
app/Http/Controllers/HomeController.php
resources/js/components/ExampleComponent.vue
resources/sass/_variables.scss
resources/views/auth/login.blade.php
resources/views/auth/passwords/email.blade.php
resources/views/auth/passwords/reset.blade.php
resources/views/auth/register.blade.php
resources/views/auth/verify.blade.php
resources/views/home.blade.php
resources/views/layouts/app.blade.php
変更されるファイル
package.json
resources/js/app.js
resources/js/bootstrap.js
resources/sass/app.scss
routes/web.php
webpack.mix.js
3.packageインストール(npmが必要)
npm install
4.CSS/JS 作成ビルド
npm run dev
##laravel5系の場合
Laravel5系の場合は下記コマンドで6系、7系の上記コマンドと同じ環境になる
php artisan make:auth
##認証メソッド
use Illuminate\Support\Facades\Auth;
// 現在認証されているユーザーの取得
$user = Auth::user();
// 現在認証されているユーザーのID取得
$id = Auth::id();
// 認証チェック
if (Auth::check()) {
// ユーザーはログインしている
} else {
// ログインしていません
}
上記のように認証ユーザを取得してAuth::check()メソッドを使うとログイン済かログイン未なのかがチェックできるので、それに応じてログインページにリダイレクトさせたりできる。
デフォルト設定なら自動的にルーティングやコントローラが作成されているはずなので下記のようにしてログイン未ならリダイレクトとかやれば良いかとおもう。(ルーティングやコントローラは自身の環境確認してください)
return redirect('/login');
return redirect('/register');
※調べたらルーティングにmiddleware('auth')を追加するだけでログインフォームにリダイレクトされるみたいですね。
下記にまとめときます
##特定ページに画面遷移したとき、ログインしてない場合はリダイレクトさせる方法
ルーティングの後にmiddleware('auth')
を追加するだけ
Route::get('/hoge', 'HogeController@index')->middleware('auth');
##ログイン処理の実装
# Auth::attempt()メソッドを使う
if (Auth::attempt(['email' => $email,
'password' => $password])) {
$msg = "ログインしました。'( . Auth::user()->name . ')";
} else {
$msg = "ログインに失敗しました。";
public function getAuth(Request $request)
{
$params = ['message' => 'ログインしてください'];
return view('hello.auth', $params);
}
public function postAuth(Request $request)
{
$email = $request->email;
$password = $request->password;
if (Auth::attempt(['email' => $email,
'password' => $password])) {
$msg = "ログインしました。'( . Auth::user()->name . ')";
} else {
$msg = "ログインに失敗しました。";
}
return view('hello.auth', ['message' => $msg]);
}
独自で作ったログイン画面を使うこともできるし、デフォルトのログイン画面をカスタムして使うこともできるので、やり方次第でなんでもできそう。
##参考サイト