Chapter 9. User Authentication and Authorization
Setting up a basic user authentication system—including registration, login, sessions, password resets, and access permissions—can often be one of the more time-consuming pieces of creating the foundation of an application. It’s a prime candidate for extracting functionality out to a library, and there are quite a few such libraries.
But because authentication needs can vary widely across projects, most authentication systems grow bulky and unusable quickly. Thankfully, Laravel has found a way to make a suite of authentication systems that are easy to use and understand, but flexible enough to fit in a variety of settings.
Every new installation of Laravel has a create_users_table migration and a User model built in. If you bring in Breeze (see “Laravel Breeze”) or Jetstream (see “Laravel Jetstream”), they’ll seed your app with a collection of authentication-related views, routes, controllers/actions, and other features. The APIs are clean and clear, and the conventions all work together to provide a simple—and seamless—authentication and authorization system.
The User Model and Migration
When you create a new Laravel application, the first migration and model you’ll see are the create_users_table migration and the App\User model. Example 9-1 shows, straight from the migration, the fields you’ll get in your users table.
Example 9-1. Laravel’s default user migration
Schema::create('users',function(Blueprint$table){$table ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access