Laravel Jetstream是什么以及如何入门?

2020-09-28 16:19:02 浏览数 (1)

介绍

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,你可以在LivewireInertia之间进行选择。

安装 Laravel Jetstream

可以有2中方式来安装Laravel Jetstream,一种使用composer安装,一种使用 Laravel installer 安装。

1. Laravel installer 安装

如果你已经安装最新版的 Laravel installer ,则只需要使用 --jet 参数即可安装 Laravel Jetstream项目:

代码语言:javascript复制
laravel new project-name --jet

之后,跟旧版一样,请确保运行迁移命令:

代码语言:javascript复制
php artisan migrate

2. 使用 Composer 安装

如果你更习惯用 composer 来安装程序包,则需要在项目根目录中像以往安装程序包一样,运行一下命令:

代码语言:javascript复制
composer require laravel/jetstream

注意:需要确保安装的是Larave 8。否则,以上命令将失败。

之后,需要运行 artisan jetstream:install 并指定要使用的开发前端使用的堆栈:

  • 如果想将 LivewireBlade 结合使用,则运行以下命令:
代码语言:javascript复制
php artisan jetstream:install livewire
  • 如果想将 InertiaVue 结合使用,则运行以下命令:
代码语言:javascript复制
php artisan jetstream:install inertia

以上命令,也可以添加 --teams 参数来启用 Laravel Jetstream团队支持。

之后,执行:

代码语言:javascript复制
npm install && npm run dev

上面的命令将会构建前端资源。

最后,请确保运行迁移命令

代码语言:javascript复制
php artisan migrate

认证(Authentication)

Laravel Jetstream 可以开箱即用的功能:

  • 登录表单
  • 双重认证
  • 注册表单
  • 密码重置
  • 邮箱验证 以上的视图文件都位于:
代码语言:javascript复制
resources/views/auth

后端逻辑部分则由Laravel Fortify提供支持。

可以找到 Fortify 逻辑控制文件位于以下位置:

代码语言:javascript复制
app/Actions/Fortify

并且 可以找到 Fortify 的配置信息文件:

代码语言:javascript复制
config/fortify.php

fortify.php 配置文件中,你可以进行一些更改,例如启用和禁用不同的功能,例如:

代码语言:javascript复制
'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,则可以在以下位置找到该视图:

代码语言:javascript复制
resources/js/Pages/Profile/UpdateProfileInformationForm.vue

以下文件处理用户更新逻辑:

代码语言:javascript复制
app/Actions/Fortify/UpdateUserProfileInformation.php

如果需要,您还可以通过以下位置的Jetstream配置文件禁用用户个人资料图片:

代码语言:javascript复制
config/jetstream.php

只需注释掉这一行 Features::profilePhotos()

代码语言:javascript复制
'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方法检查传入的请求:

代码语言:javascript复制
$request->user()->tokenCan('read');

同样,你可以在 config/jetstream.php 配置文件中禁用API支持。

Jetstream团队

如果你 在Jetstream安装过程中使用了 --team 参数,则你的网站将支持团队的创建和管理。

使用Jetstream团队功能,每个用户都可以创建并属于多个不同的团队。

有关Jetstream团队的更多信息,您可以在此处查看官方文档。

结论

Laravel Jetstream在启动新项目时为您提供了一个很好的起点!

我还建议在这里阅读有关Laravel 8的新功能的文章!

0 人点赞