介绍
Laravel Jetstream
与 Laravel 8 一起于2020年9月8日发布。
Laravel Jetstream 是 Laravel 新的应用程序支架。Laravel Jetstream取代了旧版Laravel中可用的Laravel认证UI。
在本教程中,我将向你快速介绍什么是Laravel Jetstream以及如何开始使用它。
准备
如果你想继续学习,你将需要一个LEMP
服务器以及composer
或最新的Laravel installer
安装。
Laravel Jetstream是什么
Jetstream为你的新项目提供了一个更好的起点。它包括以下组件:
- 登录与注册功能
- 邮箱验证
- 双重认证
- 会话管理
- 通过
Laravel Sanctum
提供API支持
Laravel Jetstream取代了旧版Laravel中可用的Laravel认证UI。
Jetstream使用Tailwind CSS
,你可以在Livewire
或Inertia
之间进行选择。
安装 Laravel Jetstream
可以有2中方式来安装Laravel Jetstream,一种使用composer
安装,一种使用 Laravel installer
安装。
1. Laravel installer 安装
如果你已经安装最新版的 Laravel installer ,则只需要使用 --jet
参数即可安装 Laravel Jetstream
项目:
laravel new project-name --jet
之后,跟旧版一样,请确保运行迁移命令:
代码语言:javascript复制php artisan migrate
2. 使用 Composer 安装
如果你更习惯用 composer
来安装程序包,则需要在项目根目录中像以往安装程序包一样,运行一下命令:
composer require laravel/jetstream
注意:需要确保安装的是Larave 8。否则,以上命令将失败。
之后,需要运行 artisan jetstream:install
并指定要使用的开发前端使用的堆栈:
- 如果想将
Livewire
和Blade
结合使用,则运行以下命令:
php artisan jetstream:install livewire
- 如果想将
Inertia
与Vue
结合使用,则运行以下命令:
php artisan jetstream:install inertia
以上命令,也可以添加 --teams
参数来启用 Laravel Jetstream团队支持。
之后,执行:
代码语言:javascript复制npm install && npm run dev
上面的命令将会构建前端资源。
最后,请确保运行迁移命令
代码语言:javascript复制php artisan migrate
认证(Authentication)
Laravel Jetstream 可以开箱即用的功能:
- 登录表单
- 双重认证
- 注册表单
- 密码重置
- 邮箱验证 以上的视图文件都位于:
resources/views/auth
后端逻辑部分则由Laravel Fortify提供支持。
可以找到 Fortify
逻辑控制文件位于以下位置:
app/Actions/Fortify
并且 可以找到 Fortify
的配置信息文件:
config/fortify.php
在 fortify.php
配置文件中,你可以进行一些更改,例如启用和禁用不同的功能,例如:
'features' => [
Features::registration(),
Features::resetPasswords(),
// Features::emailVerification(),
Features::updateProfileInformation(),
Features::updatePasswords(),
Features::twoFactorAuthentication(),
],
个人资料管理(Profile management)
Jetstream即开即用,为你和你的用户提供用户个人资料管理功能,该功能允许用户更新其姓名,电子邮件地址和个人资料照片。
用户个人资料视图存储在:
代码语言:javascript复制resources/views/profile/update-profile-information-form.blade.php
如果你使用的是Inertia
,则可以在以下位置找到该视图:
resources/js/Pages/Profile/UpdateProfileInformationForm.vue
以下文件处理用户更新逻辑:
代码语言:javascript复制app/Actions/Fortify/UpdateUserProfileInformation.php
如果需要,您还可以通过以下位置的Jetstream配置文件禁用用户个人资料图片:
代码语言:javascript复制config/jetstream.php
只需注释掉这一行 Features::profilePhotos()
:
'features' => [
// Features::profilePhotos(),
Features::api(),
// Features::teams(),
],
Laravel Jetstream 安全(Security)
Laravel Jetstream带有允许用户更新密码并注销的标准功能。
但是,更令人印象深刻的是,Jetstream还提供带有QR码的双重身份验证,用户可以直接启用和禁用。
另一个出色的安全功能是用户也可以注销其他浏览器会话。这个在个人资料页中可以找的到:
代码语言:javascript复制resources/views/profile/
如果你使用的是Inertia,则可以在以下位置找到它们:
代码语言:javascript复制resources/js/Pages/Profile/
Jetstream API
Laravel Jetstream
使用Laravel Sanctum提供简单的基于令牌的API。
使用Sanctum
,每个用户都可以生成具有特定权限的API令牌,例如创建,读取,更新和删除。
然后,可以使用以下tokenCan
方法检查传入的请求:
$request->user()->tokenCan('read');
同样,你可以在 config/jetstream.php
配置文件中禁用API支持。
Jetstream团队
如果你 在Jetstream安装过程中使用了 --team
参数,则你的网站将支持团队的创建和管理。
使用Jetstream
团队功能,每个用户都可以创建并属于多个不同的团队。
有关Jetstream团队的更多信息,您可以在此处查看官方文档。
结论
Laravel Jetstream在启动新项目时为您提供了一个很好的起点!
我还建议在这里阅读有关Laravel 8的新功能的文章!