5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel(7.20.0)でゲストログイン機能を実装

Last updated at Posted at 2020-10-17

はじめに

ポートフォリオ作成していくうえで、開発して終わりではもったいないと思います。
どうせなら作ったものを、ほかの人に触ってもらってフィードバックを受け、それをもとに改善していくことでより良いものを作ることが出来、かつ勉強にもなります。

とはいっても、自分も最初はなかなか作ったものを他人に見せる勇気がありませんでした。
最近では、友人や面接時に様々なフィードバックをいただき、日々改善しています。

そんな中、ログイン機能を実装しているアプリケーションの場合、アカウントを作成しログインする必要があります。
友達であればまだいいかもしれませんが、関係の浅い人(面接官など)の場合アカウントを作成しログインしてアプリケーションを触ることは手間がかかり触ってもらえる機会を失ってしまうかもしれません。
それはもったいない!!!

そこで今回は、ゲストログイン機能を実装したので軽くご紹介します!

前提

  • すでにアプリケーションがあり、ログイン機能を実装している

流れ

とはいっても、そんなに難しいことをするわけでもありません。

やることとしては、

  • ゲストログイン処理の実装
  • 登録画面とログイン画面に、ゲストログインボタンを実装
  • web.phpにてルーティングの実装

ゲストログイン処理の実装

まず、Laravelの公式ドキュメントを見てみると

Laravelの認証サービスにはAuthファザードでアクセスできます。クラスの最初でAuthファサードを確実にインポートしておきましょう。次にattemptメソッドを見てみましょう。
認証7.x 自前のユーザー認証

とのことで、認証するにあたってAuthファザードのattemptメソッドを使えばよさそう。
今回はapp\Controllers\Auth\LoginController.phpにゲストログイン処理を実装する。

LoginController.php

public function guestLogin()
{
    $email = 'hoge@hoge.jp';
    $password = 'hogehoge';

    if (Auth::attempt(['email' => $email, 'password' => $password])) {
        return redirect()->route('home');
    }

    return redirect('/');
}

attemptメソッドは、最初の引数として、キー/値ペアの配列を受け取ります。
今回は、メールアドレスとパスワードの配列を引数に指定します。こちらで指定している値(emailとpassword)を持つユーザーアカウントをデータベース内にあるか探す。
→当然ながら、あらかじめゲスト用アカウントデータを作成しておくこと!

認証が成功すれば、trueを返し失敗したらfalseを返す。

注意点としては、

データベース中のハッシュ済みパスワードと比較する前に、フレームワークは自動的に値をハッシュ化するため、passwordへ指定する値はハッシュ化しないでください。

とのこと。より詳しく確認したい場合は、公式ドキュメントをご確認ください。

これでゲストログイン処理の実装が完了。

ゲストログインボタンを実装

ゲストログイン処理を実装しても、肝心のゲストログインボタンを忘れたらできません。
そこで登録画面とログイン画面に、ゲストログインボタンを実装していきます!

login.blade.php
<button type="submit" class="btn btn-secondary guest-btn">
  <a href="/login/guest">Guest Login</a>
</button>

こんな感じで、register.blade.phpも同様に上記のコードを実装します。

これで終わりかと思いきや、まだ肝心のルーティングを用意していないためそちらを記載します。

ルーティングの実装

web.phpにてルーティングを実装する。

web.php
Route::get('/login/guest', 'Auth\LoginController@guestLogin');

これで完成。

まとめ

今回は、Laravelにてゲストログイン機能を実装しました。
後回しにしていましたが、やってみるととても簡単でした。ちょっとした機能ではありますが、今回のようにユーザー目線で開発が行えるといいですね!

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?