Laravel 登录和注册:生成认证
预构建的身份验证控制器
Laravel 附带了几个预构建的身份验证控制器,它们位于 App\Http\Controllers\Auth
命名空间中。
RegisterController
处理新的用户注册LoginController
处理身份验证ForgotPasswordController
处理用于重置密码的电子邮件链接ResetPasswordController
包含重置密码的逻辑
这些控制器中的每一个都使用一个特性来包含它们的必要方法。对于许多应用程序,您根本不需要修改这些控制器。
生成认证用的路由和视图
Laravel 提供了一种快速的方法,可以使用一个简单的命令来搭建认证所需的所有路由和视图:
php artisan make:auth
注: 从
Laravel 6.0
开始,需要先安装laravel/ui
拓展包,命令为composer require laravel/ui
,然后再运行php artisan ui vue --auth
替换上面的php artisan make:auth
。编译前端资源可以使用命令npm install && npm run dev
.
此命令应该用于新应用程序,并将安装布局视图、注册和登录视图以及所有身份验证端点的路由。还将生成一个 HomeController
来处理应用程序仪表板的登录后请求。
如果应用程序不需要注册,可以通过删除新创建的
RegisterController
并修改路由声明来禁用它:Auth::routes(['register' => false]);
。
以上命令还将创建认证所需的所有视图,并将它们放在 resources/views/auth
目录中。
make:auth
命令还将创建一个包含应用程序基本布局的 resources/views/layouts
目录。所有这些视图都使用了 Bootstrap CSS 框架,但是你可以自由地定制它们。
数据库迁移
database/migrations/
下的用户表和密码重置表如果还没有运行过迁移,那么执行以下命令:
php artisan migrate
认证
现在已经给认证的控制器设置好了路由和视图,你可以在应用中注册和认证新用户了!因为控制器已经默认包含了验证用户是否存在和保存用户到数据库中的认证逻辑(通过 traits 实现的),现在你已经可以在浏览器中访问应用了。