sambindoff/laravel-gust

Laravel Gust 是一个后端无关的 VueJS 验证前端,用于 Laravel。

v1.2.0 2022-03-26 08:36 UTC

This package is auto-updated.

Last update: 2024-09-09 23:06:26 UTC


README

Latest Version on Packagist Total Downloads License Buy us a tree

简介

Laravel Gust 是一个后端无关的 Vue.js 验证前端,用于 Laravel。Gust 可以在您使用 Laravel Fortify、Breeze 或 UI 时,为您的 Laravel 后端提供注册和验证功能。

Gust 使用 Vue.js v3、Vue Router v4、Vuex v4 和 Tailwind CSS v2 作为前端,并提供脚手架以帮助您开始使用兼容所有 Laravel 后端验证包的基本 Vue.js SPA。

Gust 在后端使用 Laravel Sanctum 验证您的 SPA,无论您选择哪种堆栈。

您可以在下面阅读有关如何安装每个堆栈及其对应用程序所做的更改的更多信息。

安装

您可以通过 composer 安装此包

composer require y0rdie/laravel-gust --dev

使用

Gust 提供三种后端堆栈的选择:Fortify、Breeze 或 UI(对于我们中的恐龙们)。

使用 Fortify 安装

如果您不需要自定义此包提供的后端验证逻辑,Fortify 堆栈是一个不错的选择,因为这些全部由包本身处理。

php artisan gust:install fortify

在下面的 Fortify 堆栈做什么 部分中阅读有关此更改对应用程序的影响。

使用 Breeze 安装

如果您想要对提供的后端验证逻辑有更大的控制权,Breeze 堆栈是一个不错的选择,因为这些全部发布到您的应用程序中。

php artisan gust:install breeze

在下面的 Breeze 堆栈做什么 部分中阅读有关此更改对应用程序的影响。

使用 UI 安装

如果您已经熟悉此包提供的后端验证逻辑,但尚未准备好切换到 Breeze 或 Fortify,UI 堆栈是一个不错的选择。

php artisan gust:install ui

在下面的 UI 堆栈做什么 部分中阅读有关此更改对应用程序的影响。

完成安装

php artisan migrate
npm install && npm run dev

这将对您的应用程序做什么

所有堆栈做什么

为了使任何 SPA 与 Laravel 兼容,以下是需要进行的所有更改的详尽列表

  • 使用 composer require laravel/sanctum 包。
  • 执行 Sanctum vendor:publish 命令。
  • SANCTUM_STATEFUL_DOMAINS 添加为环境变量。
  • 将 Sanctum 中间件添加到 app/Http/Kernel.php
  • MustVerifyEmail 接口添加到 app/Models/User.php
  • 复制 routes/api.phproutes/web.php 模板。
  • 删除 resources/sass 目录。
  • 删除 resources/js/bootstrap.js 文件。
  • 删除 resources/views 目录,以便使用新模板。
  • 发布所有 SPA 模板。
  • package.json 更新为要求 Vue.js、Vue Router、Vuex 和 Tailwind CSS。
  • 使用 ResetPassword::createUrlUsing 方法在 app/Providers/AuthServiceProvider.php 中自定义密码重置链接 URL,如 此处 所述,因为 GET 路由定义不再存在于 SPA 中。
  • 由于 GET 路由定义不再存在于 SPA 中,将 route('login') 替换为 url('login')app/Http/Middleware/Authenticate.php 中。

Fortify 堆栈做什么

  • 使用 composer require laravel/fortify 包。
  • 运行 Fortify 的 vendor:publish 命令。
  • FortifyServiceProvider 添加到 config/app.php 文件的 providers 键中。
  • 更新 config/fortify.php,设置 'views' => false, 并仅启用注册、重置密码、邮箱验证功能。
  • 更新 app/Providers/FortifyServiceProvider.php,仅注册 CreateNewUserResetUserPassword 动作。
  • 删除 app/Actions/Fortify/UpdateUserPassword.php 文件。
  • 删除 app/Actions/Fortify/UpdateUserProfileInformation.php 文件。

您可以在 官方仓库 中了解有关 Laravel Fortify 的更多信息。

Breeze 堆栈做什么

  • 运行 Breeze 的 vendor:publish 命令。
  • routes/auth-breeze.php 模板复制到 routes/auth.php,并在 routes/web.php 中包含它。
  • 复制 app/Http/Controllers/Auth/NewPasswordController.php 模板。这确保在发生令牌不匹配时抛出验证异常,并且由于单页应用程序(SPA)中不再存在 GET 路由定义,还更改了 route('login')to('login')
  • 删除 app/Views 目录。

您可以在 官方仓库 中了解有关 Laravel Breeze 的更多信息。

UI 堆栈做什么

  • 使用 Composer 安装 laravel/ui 包。
  • 运行 ui:controllers 命令。
  • routes/auth-ui.php 模板复制到 routes/auth.php,并在 routes/web.php 中包含它。
  • 复制 app/Http/Controllers/Auth/LoginController.php 模板。这覆盖了 logout 方法,以显式使用 auth web 守卫。
  • 删除 app/Http/Controllers/HomeController.php 文件。

您可以在 官方仓库 中了解有关 Laravel UI 的更多信息。

变更日志

请参阅 变更日志 了解最近更改的详细信息。

贡献

请参阅 贡献指南 获取详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。

此包是 Treeware。如果您在生产中使用它,那么我们请求您 为世界买一棵树 以感谢我们的工作。通过为 Treeware 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

*此包可能有一个吸引人的单个词名称,就像许多其他 Laravel 一方包一样,但这绝对是一个非官方包,并且绝对未得到 Laravel 团队的认可。这更像是一种俏皮的参考,但希望同样出色。