什么是 Laravel Jetstream 及怎么使用它?

Laravel

介绍

Laravel 8 与 Laravel Jetstream 一起于9月8日发布。

Laravel Jetstream 是 Laravel 的新应用程序扩展。Laravel Jetstream 替换了旧版本 Laravel 的旧版 Laravel 身份验证UI。

在本教程中,我将为你简要介绍 Laravel Jetstream 以及如何开始使用它。

先决条件

如果要继续学习,则需要 LEMP 服务器以及 composer 或最新的Laravel安装程序。

我将使用 DigitalOcean 进行演示。 如果你还没有 DigitalOcean 账号,则可以使用以下引荐链接获得 $100 的优惠,可以用于部署服务器和测试指南:

DigitalOcean $100 美元优惠劵

什么是 Laravel Jetstream

Jetstream为你的新项目提供了一个更好的开始。它包括以下组件:

  • 登录和注册功能
  • 电子邮件验证
  • 双重验证
  • Session 管理
  • 通过 Laravel Sanctum 提供API支持

Laravel Jetstream 取代了以前版本的 Laravel 身份验证UI。

Jetstream 使用了 Tailwind CSS ,你可以选择 Livewire 或者 Inertia 组件。

Laravel Jetstream 是免费的开源软件。

安装 Laravel Jetstream

你可以使用 composer 或 Laravel 安装程序两种方法安装 Laravel Jetstream 。

使用 Laravel 安装程序安装 Laravel Jetstream

如果你已经有了最新版本的 Laravel 安装程序,你只需使用 --jet 即可安装新的laravel Jetstream项目:

laravel new project-name --jet

然后,像往常一样,请确保运行你的迁移:

php artisan migrate

使用 Composer 来安装 Laravel Jetstream

如果你更喜欢使用 composer ,则需要像使用其他软件包一样在 Laravel 目录中运行以下命令:

composer require laravel/jetstream

注意:你需要安装 Laravel 8。否则,以上命令将失败。

然后,你需要运行 artisan jetstream:install 并指定需使用的栈

  • 如果你要 Livewire 和 Blade 一起使用,请运行:
php artisan jetstream:install livewire
  • 如果你要 Inertia 与 Vue 一起使用,请运行:
php artisan jetstream:install inertia

你也可以添加 --teams 来启用 Laravel Jetstream 组管理

之后,执行:

npm install && npm run dev

上面的命令将安装所需的依赖以及构建打包。

最后,请确保运行你的迁移:

php artisan migrate

认证方式

你的新 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(),
    ],

个人资料管理

Jetstream 即开即用,提供了用户个人资料管理功能,该功能允许用户更新姓名,电子邮件地址和个人资料照片。

用户个人资料视图存储在:

resources/views/profile/update-profile-information-form.blade.php

如果你使用的是 Inertia ,则可以在以下位置找到该视图:

resources/js/Pages/Profile/UpdateProfileInformationForm.vue

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

app/Actions/Fortify/UpdateUserProfileInformation.php

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

config/jetstream.php

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

    'features' => [
        // Features::profilePhotos(),
        Features::api(),
        // Features::teams(),
    ],

Jetstream 安全管理

Laravel Jetstream 带有允许用户更新密码并注销的功能:

Laravel

而且,让人意想不到的是, Jetstream 还提供带有二维码的双重身份验证,用户可以直接启动和禁用:

Laravel

另一个出色的功能是用户可以注销其他浏览器的 Session 会话。

Laravel

Blade 的资源文件可以在以下位置找到:

resources/views/profile/

如果你使用的是 Inertia ,则可以在以下位置找到它们:

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 在启动新项目时为你提供了一个很好的开始!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://devdojo.com/bobbyiliev/what-is-l...

译文地址:https://learnku.com/laravel/t/49799

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

LEMP 即 Linux, Nginx, MySQL, and PHP Stack。 至于为啥不是 LNMP,是因为 Nginx 的官方发音是:Engine-X (en-juhn-ecks)。 来源:lemp.io/

:joy: :joy: :joy:

3年前 评论

LEMP 即 Linux, Nginx, MySQL, and PHP Stack。 至于为啥不是 LNMP,是因为 Nginx 的官方发音是:Engine-X (en-juhn-ecks)。 来源:lemp.io/

:joy: :joy: :joy:

3年前 评论

有没有像bootstrap那样的UI组件呢

3年前 评论
codeSeele 3年前
luren 2年前

奇怪,我按顺序执行了命令,没有看到resources/views/auth这个目录,导致一点击login,就报404

3年前 评论
九霄道长

Laravel Jetstream Inertia + Vue 是不是没法本地化

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!