OWNED MEDIAウェブ制作に役立つコンテンツを発信中!

Laravelでログインとトークン認証のAPIを作成してみる(環境構築)

PHPのフレームワークであるLaravelを使うといろんなウェブアプリケーションを作成することができます。今回はLaravelでのログインとユーザーのトークン認証ができるAPIの作成を備忘録として残しておきたいと思います。まずはユーザー用のDBテーブルを作成するためにマイグレーションの設定から行なっていきます。   認証ユーザー用のマイグレーションファイルを下記コマンドで新規作成していきます。するとdatabase/migrations/にマイグレーションファイルができます。
$ php artisan make:migration auth_users
  作成されたマイグレーションファイルにマイグレーションの設定を追記していきます。ここではLaravelにデフォルトで用意されている「users」テーブルをそのまま使用しています。そのため「Schema::create()」ではなく「Schema::table()」で実行し、第一引数にはテーブル名である「users」を指定します。そして新たに「token」カラムを追加しています。 【database/migrations/yyyy_mm_dd_******_auth_users.php】※一部抜粋
class AuthUsers extends Migration {
 public function up() {
  Schema::table('users', function (Blueprint $table) {
   $table->string('token')->unique()->nullable();
  });
 }

 public function down() {
  Schema::table('users', function (Blueprint $table) {
   $table->dropColumn('token');
  });
 }
}
  マイグレーションファイルに設定を追記したら、下記コマンドでマイグレーションを実行してDBに新規カラムを追加します。
$ php artisan migrate
  ただし、この時に他のマイグレーションファイルを作成済みで、一度マイグレーションを行なっている場合には下記のコマンドを実行します。
$ php artisan migrate:fresh
  これで、データベースの既存usersテーブルに、新たにtokenカラムが追加されているのが確認できました。 Laravelでログインとトークン認証のAPIを作成してみる(環境構築)   続いてユーザーのテストデータを作成するために、下記コマンドでSeederファイルを新規作成していきます。すると、database/seeds/にSeederファイルができるのが確認できます。
$ php artisan make:seeder UsersSeeder
  作成されたSeederファイルにテストデータ作成の設定を加えていきます。今回はfactoryと呼ばれる機能を使って自動的にユーザーのテストデータを生成できるようにします。ここでは5つのユーザーデータを作成するようにしています。 【database/seeds/UsersSeeder.php】※一部抜粋
use IlluminateDatabaseSeeder;

class UsersSeeder extends Seeder {
 use IlluminateFoundationTestingWithFaker;
 public function run() {
  $users = factory(AppUser::class, 5)->create();
 }
}
  そして、下記コマンドでusersテーブルにテストデータを作成していきます。
$ php artisan db:seed --class UsersSeeder
  これで、DBを確認してみると、テストユーザーとしてusersテーブルに架空のユーザーデータが記録されているのが確認できました。tokenの値はnullになっていますが、ここは後からユーザー固有のトークンを発行する形になります。 Laravelでログインとトークン認証のAPIを作成してみる(環境構築)   今回はLaravelでログインとトークン認証のAPIを作成する上での環境構築を中心にまとめてみました。この後に実際のAPIを実装していくことになりますが、そちらは次回記事「Laravelでログインとトークン認証のAPIを作成してみる(API実装)」にて詳しくまとめていきたいと思います。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

SPONSORED

    KEYWORD SEARCH

    RECENT POSTS

    合同会社デザインサプライ -DesignSupply. LLC-

    サイト制作・開発 / 各種デザイン制作 / ウェブプロモーション企画

    合同会社デザインサプライ(DesignSupply. LLC)

    Office:大阪府大阪市天王寺区清水谷町3-22
    Email:info@designsupply-web.com
    • Twitter
    • Github
    CONTACT USSCROLL TO TOP
      • Facebook
      • Twitter
      • Github
      • Instagram