2
1

More than 3 years have passed since last update.

laravelでゲストログイン機能を作成

Last updated at Posted at 2020-12-06

今やポートフォリオには必須の機能とされているゲストログイン機能を作成しました

環境
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>


今回はゲストログインボタンを押したらダイアログが表示され「ログイン」をクリックしたらメソッドが発火するというデザインにしてみました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1