SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

人気のPHPフレームワークLaravelを習得しよう

Laravelの認証機能を理解しよう

人気のPHPフレームワークLaravelを習得しよう 第10回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載ではPHPフレームワークのひとつであるLaravelを紹介していきます。Laravelは、「Web職人のためのフレームワーク」というキャッチコピーのもと、ここ数年で人気がうなぎ上りのフレームワークです。連載を通して、その人気の秘密を味わっていただこうと思います。第9回である前回は、データベース処理を紹介しました。今回は、いよいよ最終回です。Laravelの認証機能を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Laravelの認証機能概観

 Laravelでは、認証機能がほぼ自動化されています。ここでいう認証機能というのは、ログイン機能、ログアウト機能のみならず、ログイン状態の維持とチェック、ユーザー登録機能、パスワードを忘れた場合のパスワードリセットURLのメール送信などが含まれます。これらを、コマンドを実行するだけで、ほぼコーディングなしに実現できます。

 手順は次の通りです。

  1. laravel/uiパッケージの追加
  2. 認証機能に関するファイル類の追加
  3. データベースへのテーブルの追加

 この手順に従ってfirstlaravelプロジェクトに認証機能を追加していきます。

Laravel認証機能のプロジェクトへの追加

 では、具体的に説明していきましょう。

手順1:laravel/uiパッケージの追加

 第8回の冒頭部分で、「Laravel7がリリース」と題してLaravel7での変更点をまとめています。その中で挙げている、「認証関係のスキャフォールディングを別パッケージ化」の内容が今回に関係します。

 Laravelのバージョン5までは、UI関連のスキャフォールディングがLaravelプロジェクトにデフォルトで含まれていました。これが、バージョン6でlaravel/uiと別パッケージへと分離されました。その流れを受け、バージョン7では認証関連のスキャフォールディングも分離され、Laravelプロジェクトに含まれなくなりました。そこで、これらのパッケージを別途追加するところから始める必要があります。パッケージの追加なので、Composerの出番です。firstlaravelディレクトリで次のコマンドを実行してください。

composer require laravel/ui

 composer.jsonとcomposer.lockが更新されて、必要なパッケージがダウンロードされます。

手順2:認証機能に関するファイル類の追加

 手順1で認証関係のスキャフォールディングが可能となったので、実行して、認証関係のファイル類を追加しましょう。同じく、firstlaravelディレクトリで次のコマンドを実行してください。

php artisan ui vue --auth

 コマンド実行によって、プロジェクト内に次の変更が成されます。

  1. app/Http/Controllers/Authディレクトリが作成され、中に認証関係のコントローラファイルが追加される。
  2. app/Http/Controllers/HomeController.phpファイルが追加される。これは、ログイン後に表示されるホーム画面用コントローラクラス。
  3. database/migrations/2014_10_12_100000_create_password_resets_table.phpファイルが追加される。
  4. resources/jsやresources/sassディレクトリ内のファイル内容が変更されている。
  5. resources/viewsディレクトリ内に、認証関連のテンプレートファイル(authディレクトリ内)、ホーム画面用のテンプレートファイル(home.blade.php)、レイアウトテンプレートファイル(layouts/app.blade.php)が追加される。
  6. routes/web.phpに、認証関係のルーティング登録が追記される。

 ここまでの作業で、Laravelのトップ画面に変化が現れます。試しに次のURLにアクセスしてください。

 http://localhost/firstlaravel/public/

 図1の画面が表示されます。

図1: firstlaravelアプリのトップ画面
図1: firstlaravelアプリのトップ画面

 スキャフォールディングコマンド実行前のトップ画面にはなかった右上の[LOGIN]リンクと[REGISTER]リンクが増えています。この[LOGIN]リンクをクリックすると、図2の画面が表示されます。

図2: 自動生成されたログイン画面
図2: 自動生成されたログイン画面

 デザインこそされていませんが、これが自動生成されたログイン画面です。一通り機能が揃っています。ここにメールアドレスとパスワードを入力するとログイン処理が自動的に行われ、ホーム画面が表示されます。これらの処理コードはあらかじめ記述されており、一切コーディングの必要はありません。ただし、ログインユーザー情報をあらかじめ登録しておく必要があります。これに関しても登録機能が用意されており、それが、図2の画面の[Register]リンク、あるいは、図1のトップ画面の[REGISTER]リンクの先で表示された図3の画面です。

図3: 自動生成されたユーザ登録画面
図3: 自動生成されたユーザー登録画面

 この画面に必要事項を入力して[Register]ボタンをクリックすると、ユーザー登録が行われます。こちらも、一切コーディングする必要はありません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Laravel認証機能のプロジェクトへの追加(2)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
人気のPHPフレームワークLaravelを習得しよう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12920 2020/10/05 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング