今やポートフォリオには必須の機能とされているゲストログイン機能を作成しました
環境
PHP 7.3.11
Laravel Framework 7.29.3
今回はLoginControllerをいじっていきます
LoginController.php
//省略//
public function guestLogin() {
$name = 'ゲスト';
$password = 'guestpass';
if(Auth::attempt(['name' => $name, 'password' => $password])) {
return redirect('/home');
}
return redirect('/');
}
Auth::attemptは引数に指定したレコードがDB内にあればtrue,そうでなければfalseを返す
今回は予めゲストログイン用のユーザーアカウントを作成しておき名前とパスワードをname,passwordに代入、
Auth::attemptメソッドの引数に指定すればもちろんtrueが帰ってくるので認証が成功し
/homeにリダイレクトされるといった感じです。
web.php
Route::get('/login/guest', 'Auth\LoginController@guestLogin');
/login/guestを踏めばguestLoginメソッドが実行されます
guestLoginComponent.vue
<template>
<div>
<a class="nav-link" @click="openModal">ゲストログイン</a>
<div class="overlay" @click="closeModal" v-if="showContent">
<div class="dialog" @click="stopEvent">
<p class="borderbottom pt-2 pb-4">ゲストユーザーとしてこのサイトをお試しになれます</p>
<p class="text-right pr-2">
<a @click="closeModal" class="mr-4 black">キャンセル</a>
<a href="/login/guest" class="ml-auto">ログイン</a>
</p>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
showContent: false
}
},
methods:{
stopEvent(){
event.stopPropagation()
},
openModal(){
this.showContent = true
},
closeModal(){
this.showContent = false
}
}
}
</script>
今回はゲストログインボタンを押したらダイアログが表示され「ログイン」をクリックしたらメソッドが発火するというデザインにしてみました。