diff --git a/app/Listeners/UserLoginAttempt.php b/app/Listeners/UserLoginAttempt.php new file mode 100644 index 0000000..a454b9f --- /dev/null +++ b/app/Listeners/UserLoginAttempt.php @@ -0,0 +1,20 @@ +update(['login_at' => now()]); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 61bebc9..9d62a29 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -19,7 +19,10 @@ class User extends Authenticatable * @var array */ protected $fillable = [ - 'name', 'email', 'password', + 'name', + 'email', + 'password', + 'login_at', ]; /** diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 723a290..106d236 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -2,6 +2,8 @@ namespace App\Providers; +use App\Events\UserLoggedIn; +use App\Listeners\UpdateUserMetaData; use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; @@ -18,6 +20,9 @@ class EventServiceProvider extends ServiceProvider Registered::class => [ SendEmailVerificationNotification::class, ], + \Illuminate\Auth\Events\Authenticated::class => [ + 'App\Listeners\UserLoginAttempt@handle' + ], ]; /** diff --git a/database/migrations/2020_04_12_072844_add_login_at_to_users_table.php b/database/migrations/2020_04_12_072844_add_login_at_to_users_table.php new file mode 100644 index 0000000..ba18bfe --- /dev/null +++ b/database/migrations/2020_04_12_072844_add_login_at_to_users_table.php @@ -0,0 +1,32 @@ +timestamp('login_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('login_at'); + }); + } +}