Laravel8 的几种用户认证服务扩展的安装-Win10开发环境
1. 基础认证服务
1.1 Laravel UI 老式认证流程
Laravel UI 是一个从 Laravel 框架中分离出来的扩展包,Laravel 6 以前版本内置的基础用户认证服务,具备基本的用户认证流程,包括注册、登录、登出、密码重置、邮件验证等认证逻辑。以前的命令是make:auth。
- composer 来安装 Laravel UI 包:
composer require laravel/ui
PS D:\web_www\ui> composer require laravel/ui Using version ^3.4 for laravel/ui
./composer.json has been updated
Running composer update laravel/ui
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking laravel/ui (v3.4.5)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing laravel/ui (v3.4.5): Extracting archive
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
77 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
- 生成脚手架资源
php artisan ui:auth - 配置数据库
编辑.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ui
DB_USERNAME=ui
DB_PASSWORD=214521
- 数据迁移(数据库初始化)
php artisan migrate
PS D:\web_www\ui> php artisan migrate Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (44.81ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (36.83ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (35.97ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (67.68ms)
- 启动Laravel本地服务器
PS D:\web_www\ui> php artisan serve Starting Laravel development server: http://127.0.0.1:8000
[Thu Mar 10 02:14:07 2022] PHP 7.4.3 Development Server (http://127.0.0.1:8000) started
- 浏览器验证


1.2 Laravel-Admin 2.0 功能齐全的后台管理扩展包
laravel-admin 2.0 是基于laravel 7.*的版本和AdminLTE前端样式框架开发的一套通用后台管理系统laravel-admin:
- 内置基于RBAC的权限系统
- 菜单管理,和权限系统结合
- 模型数据表格,能快速构建数据表格,并支持多种模型关系
- 模型表单以及30+种form元素组件,自动实现增、删、改功能
- 支持本地和云存储,支持图片的剪裁、压缩、加水印等操作
- 大量常用后台开发组件
1.2.1 安装admin扩展包
composer require encore/laravel-admin:2.*
1.2.2 发布资源到项目里
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
1.2.3 .env配置数据库
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=admin
DB_USERNAME=admin
DB_PASSWORD=abcdddd
1.2.4 初始化数据
php artisan admin:install
1.2.5 启动本地服务器验证
php artisan serve
启动服务后,在浏览器打开 http://localhost/admin/ ,使用用户名 admin 和密码 admin登录



1.3 Laravel8 Breeze 入门套件
Breeze类似Laravel UI组件,具备基本的用户认证流程,包括注册、登录、登出、密码重置、邮件验证等认证逻辑。是Laravel 8认证入门套件,代替Laravel UI扩展。
1.3.1 安装Node.js环境
Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具!Laravel8 的扩展需要Node.js环境支持。
- Node Package Manager管理器
npm 以其简单的结构帮助 Node.js 生态系统蓬勃发展,现在 npm 仓库托管了超过 1,000,000 个开源包,你可以自由使用。
- 下载Node.js最新版
http://nodejs.cn/download/ - 查询Node与Npm对应版本号
https://nodejs.org/zh-cn/download/releases/
1.3.2 安装Breeze 扩展包
1.3.2.1 安装Breeze
composer require laravel/breeze --dev
PS D:\web_www> composer create-project laravel/laravel breeze Creating a "laravel/laravel" project at "./breeze"
Info from https://repo.packagist.org: #StandWithUkraine
Installing laravel/laravel (v8.6.11)
- Installing laravel/laravel (v8.6.11): Extracting archive
Created project in D:\web_www\breeze
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 110 installs, 0 updates, 0 removals
- Locking asm89/stack-cors (v2.1.1)
- Locking brick/math (0.9.3)
- Locking dflydev/dot-access-data (v3.0.1)
- Locking doctrine/inflector (2.0.4)
- Locking doctrine/instantiator (1.4.1)
- Locking doctrine/lexer (1.2.3)
- Locking dragonmantank/cron-expression (v3.3.1)
- Locking egulias/email-validator (2.1.25)
- Locking facade/flare-client-php (1.9.1)
- Locking facade/ignition (2.17.5)
- Locking facade/ignition-contracts (1.0.2)
- Locking fakerphp/faker (v1.19.0)
- Locking filp/whoops (2.14.5)
- Locking fruitcake/laravel-cors (v2.2.0)
- Locking graham-campbell/result-type (v1.0.4)
- Locking guzzlehttp/guzzle (7.4.1)
- Locking guzzlehttp/promises (1.5.1)
- Locking guzzlehttp/psr7 (2.1.0)
- Locking hamcrest/hamcrest-php (v2.0.1)
- Locking laravel/framework (v8.83.4)
- Locking laravel/sail (v1.13.6)
- Locking laravel/sanctum (v2.14.2)
- Locking laravel/serializable-closure (v1.1.1)
- Locking laravel/tinker (v2.7.0)
- Locking league/commonmark (2.2.3)
- Locking league/config (v1.1.1)
- Locking league/flysystem (1.1.9)
- Locking league/mime-type-detection (1.9.0)
- Locking mockery/mockery (1.5.0)
- Locking monolog/monolog (2.3.5)
- Locking myclabs/deep-copy (1.11.0)
- Locking nesbot/carbon (2.57.0)
- Locking nette/schema (v1.2.2)
- Locking nette/utils (v3.2.7)
- Locking nikic/php-parser (v4.13.2)
- Locking nunomaduro/collision (v5.11.0)
- Locking opis/closure (3.6.3)
- Locking phar-io/manifest (2.0.3)
- Locking phar-io/version (3.2.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.3.0)
- Locking phpdocumentor/type-resolver (1.6.0)
- Locking phpoption/phpoption (1.8.1)
- Locking phpspec/prophecy (v1.15.0)
- Locking phpunit/php-code-coverage (9.2.15)
- Locking phpunit/php-file-iterator (3.0.6)
- Locking phpunit/php-invoker (3.1.1)
- Locking phpunit/php-text-template (2.0.4)
- Locking phpunit/php-timer (5.0.3)
- Locking phpunit/phpunit (9.5.18)
- Locking psr/container (1.1.2)
- Locking psr/event-dispatcher (1.0.0)
- Locking psr/http-client (1.0.1)
- Locking psr/http-factory (1.0.1)
- Locking psr/http-message (1.0.1)
- Locking psr/log (1.1.4)
- Locking psr/simple-cache (1.0.1)
- Locking psy/psysh (v0.11.2)
- Locking ralouphie/getallheaders (3.0.3)
- Locking ramsey/collection (1.2.2)
- Locking ramsey/uuid (4.2.3)
- Locking sebastian/cli-parser (1.0.1)
- Locking sebastian/code-unit (1.0.8)
- Locking sebastian/code-unit-reverse-lookup (2.0.3)
- Locking sebastian/comparator (4.0.6)
- Locking sebastian/complexity (2.0.2)
- Locking sebastian/diff (4.0.4)
- Locking sebastian/environment (5.1.3)
- Locking sebastian/exporter (4.0.4)
- Locking sebastian/global-state (5.0.5)
- Locking sebastian/lines-of-code (1.0.3)
- Locking sebastian/object-enumerator (4.0.4)
- Locking sebastian/object-reflector (2.0.4)
- Locking sebastian/recursion-context (4.0.4)
- Locking sebastian/resource-operations (3.0.3)
- Locking sebastian/type (2.3.4)
- Locking sebastian/version (3.0.2)
- Locking swiftmailer/swiftmailer (v6.3.0)
- Locking symfony/console (v5.4.5)
- Locking symfony/css-selector (v5.4.3)
- Locking symfony/deprecation-contracts (v2.5.0)
- Locking symfony/error-handler (v5.4.3)
- Locking symfony/event-dispatcher (v5.4.3)
- Locking symfony/event-dispatcher-contracts (v2.5.0)
- Locking symfony/finder (v5.4.3)
- Locking symfony/http-foundation (v5.4.6)
- Locking symfony/http-kernel (v5.4.6)
- Locking symfony/mime (v5.4.3)
- Locking symfony/polyfill-ctype (v1.25.0)
- Locking symfony/polyfill-iconv (v1.25.0)
- Locking symfony/polyfill-intl-grapheme (v1.25.0)
- Locking symfony/polyfill-intl-idn (v1.25.0)
- Locking symfony/polyfill-intl-normalizer (v1.25.0)
- Locking symfony/polyfill-mbstring (v1.25.0)
- Locking symfony/polyfill-php72 (v1.25.0)
- Locking symfony/polyfill-php73 (v1.25.0)
- Locking symfony/polyfill-php80 (v1.25.0)
- Locking symfony/polyfill-php81 (v1.25.0)
- Locking symfony/process (v5.4.5)
- Locking symfony/routing (v5.4.3)
- Locking symfony/service-contracts (v2.5.0)
- Locking symfony/string (v5.4.3)
- Locking symfony/translation (v5.4.6)
- Locking symfony/translation-contracts (v2.5.0)
- Locking symfony/var-dumper (v5.4.6)
- Locking theseer/tokenizer (1.2.1)
- Locking tijsverkoyen/css-to-inline-styles (2.2.4)
- Locking vlucas/phpdotenv (v5.4.1)
- Locking voku/portable-ascii (1.6.1)
- Locking webmozart/assert (1.10.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 110 installs, 0 updates, 0 removals
- Installing doctrine/inflector (2.0.4): Extracting archive
- Installing doctrine/lexer (1.2.3): Extracting archive
- Installing symfony/polyfill-ctype (v1.25.0): Extracting archive
- Installing webmozart/assert (1.10.0): Extracting archive
- Installing dragonmantank/cron-expression (v3.3.1): Extracting archive
- Installing symfony/polyfill-php80 (v1.25.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.25.0): Extracting archive
- Installing symfony/var-dumper (v5.4.6): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.25.0): Extracting archive
- Installing symfony/string (v5.4.3): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.0): Extracting archive
- Installing psr/container (1.1.2): Extracting archive
- Installing symfony/service-contracts (v2.5.0): Extracting archive
- Installing symfony/polyfill-php73 (v1.25.0): Extracting archive
- Installing symfony/console (v5.4.5): Extracting archive
- Installing psr/log (1.1.4): Extracting archive
- Installing monolog/monolog (2.3.5): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing phpoption/phpoption (1.8.1): Extracting archive
- Installing graham-campbell/result-type (v1.0.4): Extracting archive
- Installing vlucas/phpdotenv (v5.4.1): Extracting archive
- Installing symfony/css-selector (v5.4.3): Extracting archive
- Installing tijsverkoyen/css-to-inline-styles (2.2.4): Extracting archive
- Installing symfony/routing (v5.4.3): Extracting archive
- Installing symfony/process (v5.4.5): Extracting archive
- Installing symfony/polyfill-php72 (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-idn (v1.25.0): Extracting archive
- Installing symfony/mime (v5.4.3): Extracting archive
- Installing symfony/http-foundation (v5.4.6): Extracting archive
- Installing psr/event-dispatcher (1.0.0): Extracting archive
- Installing symfony/event-dispatcher-contracts (v2.5.0): Extracting archive
- Installing symfony/event-dispatcher (v5.4.3): Extracting archive
- Installing symfony/error-handler (v5.4.3): Extracting archive
- Installing symfony/http-kernel (v5.4.6): Extracting archive
- Installing symfony/finder (v5.4.3): Extracting archive
- Installing symfony/polyfill-iconv (v1.25.0): Extracting archive
- Installing egulias/email-validator (2.1.25): Extracting archive
- Installing swiftmailer/swiftmailer (v6.3.0): Extracting archive
- Installing symfony/polyfill-php81 (v1.25.0): Extracting archive
- Installing ramsey/collection (1.2.2): Extracting archive
- Installing brick/math (0.9.3): Extracting archive
- Installing ramsey/uuid (4.2.3): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing opis/closure (3.6.3): Extracting archive
- Installing symfony/translation-contracts (v2.5.0): Extracting archive
- Installing symfony/translation (v5.4.6): Extracting archive
- Installing nesbot/carbon (2.57.0): Extracting archive
- Installing league/mime-type-detection (1.9.0): Extracting archive
- Installing league/flysystem (1.1.9): Extracting archive
- Installing nette/utils (v3.2.7): Extracting archive
- Installing nette/schema (v1.2.2): Extracting archive
- Installing dflydev/dot-access-data (v3.0.1): Extracting archive
- Installing league/config (v1.1.1): Extracting archive
- Installing league/commonmark (2.2.3): Extracting archive
- Installing laravel/serializable-closure (v1.1.1): Extracting archive
- Installing laravel/framework (v8.83.4): Extracting archive
- Installing facade/ignition-contracts (1.0.2): Extracting archive
- Installing facade/flare-client-php (1.9.1): Extracting archive
- Installing facade/ignition (2.17.5): Extracting archive
- Installing fakerphp/faker (v1.19.0): Extracting archive
- Installing asm89/stack-cors (v2.1.1): Extracting archive
- Installing fruitcake/laravel-cors (v2.2.0): Extracting archive
- Installing psr/http-message (1.0.1): Extracting archive
- Installing psr/http-client (1.0.1): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-factory (1.0.1): Extracting archive
- Installing guzzlehttp/psr7 (2.1.0): Extracting archive
- Installing guzzlehttp/promises (1.5.1): Extracting archive
- Installing guzzlehttp/guzzle (7.4.1): Extracting archive
- Installing laravel/sail (v1.13.6): Extracting archive
- Installing laravel/sanctum (v2.14.2): Extracting archive
- Installing nikic/php-parser (v4.13.2): Extracting archive
- Installing psy/psysh (v0.11.2): Extracting archive
- Installing laravel/tinker (v2.7.0): Extracting archive
- Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
- Installing mockery/mockery (1.5.0): Extracting archive
- Installing filp/whoops (2.14.5): Extracting archive
- Installing nunomaduro/collision (v5.11.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing phpdocumentor/type-resolver (1.6.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
- Installing sebastian/version (3.0.2): Extracting archive
- Installing sebastian/type (2.3.4): Extracting archive
- Installing sebastian/resource-operations (3.0.3): Extracting archive
- Installing sebastian/recursion-context (4.0.4): Extracting archive
- Installing sebastian/object-reflector (2.0.4): Extracting archive
- Installing sebastian/object-enumerator (4.0.4): Extracting archive
- Installing sebastian/global-state (5.0.5): Extracting archive
- Installing sebastian/exporter (4.0.4): Extracting archive
- Installing sebastian/environment (5.1.3): Extracting archive
- Installing sebastian/diff (4.0.4): Extracting archive
- Installing sebastian/comparator (4.0.6): Extracting archive
- Installing sebastian/code-unit (1.0.8): Extracting archive
- Installing sebastian/cli-parser (1.0.1): Extracting archive
- Installing phpunit/php-timer (5.0.3): Extracting archive
- Installing phpunit/php-text-template (2.0.4): Extracting archive
- Installing phpunit/php-invoker (3.1.1): Extracting archive
- Installing phpunit/php-file-iterator (3.0.6): Extracting archive
- Installing theseer/tokenizer (1.2.1): Extracting archive
- Installing sebastian/lines-of-code (1.0.3): Extracting archive
- Installing sebastian/complexity (2.0.2): Extracting archive
- Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
- Installing phpunit/php-code-coverage (9.2.15): Extracting archive
- Installing doctrine/instantiator (1.4.1): Extracting archive
- Installing phpspec/prophecy (v1.15.0): Extracting archive
- Installing phar-io/version (3.2.1): Extracting archive
- Installing phar-io/manifest (2.0.3): Extracting archive
- Installing myclabs/deep-copy (1.11.0): Extracting archive
- Installing phpunit/phpunit (9.5.18): Extracting archive
83 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
77 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
> @php artisan key:generate --ansi
Application key set successfully.
PS D:\web_www> cd breeze PS D:\web_www\breeze> composer require laravel/breeze --dev Using version ^1.8 for laravel/breeze
./composer.json has been updated
Running composer update laravel/breeze
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking laravel/breeze (v1.8.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing laravel/breeze (v1.8.2): Extracting archive
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/breeze
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
77 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
1.3.2.2 发布视图、路由和控制器等资源到项目目录
php artisan breeze:install
PS D:\web_www\breeze> php artisan breeze:install Breeze scaffolding installed successfully.
Please execute the "npm install && npm run dev" command to build your assets.
1.3.2.3 安装&编译前端资源
npm install
npm run dev
PS D:\web_www\breeze> npm install npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
added 791 packages in 29s
PS D:\web_www\breeze> npm run dev
> dev
> npm run development
> development
> mix
● Mix █████████████████████████ emitting (95%)
emit
● Mix █████████████████████████ done (99%) plugins
WebpackBar:done
√ Mix
Compiled successfully in 2.04s
Laravel Mix v6.0.43
✔ Compiled Successfully in 1957ms
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────┐
│ File │ Size │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┤
│ /js/app.js │ 715 KiB │
│ css/app.css │ 29.3 KiB │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────┘
webpack compiled successfully
1.3.2.4 配置数据库
编辑.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=breeze
DB_USERNAME=breeze
DB_PASSWORD=214521
1.3.2.5 数据初始化
php artisan migrate
PS D:\web_www\breeze> php artisan migrate Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (63.47ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (41.51ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (37.57ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (77.69ms)
1.3.2.6 开启本地开发服务模式
php artisan serve
PS D:\web_www\breeze> php artisan serve Starting Laravel development server: http://127.0.0.1:8000
[Thu Mar 10 01:40:49 2022] PHP 7.4.3 Development Server (http://127.0.0.1:8000) started
1.3.2.7 浏览器验证


2. Laravel Jetstream 完整UI认证扩展包
Jetstream 是 Laravel 项目的前端 UI 扩展包,提供了基本的用户认证相关功能和必要的前端开发技术栈,CSS 框架也从 Bootstrap 切换到了 Tailwind。
- CSS框架:Tailwind CSS
- 前端JS:
Livewire+Blade
Inertia.js+Vue - 后端授权:Fortify
- API令牌授权:Sanctum
Jetstream UI效果



2.1 安装 Jetstream 扩展包
composer require laravel/jetstream
PS D:\web_www\jet> composer require laravel/jetstream
Using version ^2.6 for laravel/jetstream
./composer.json has been created
Running composer update laravel/jetstream
Loading composer repositories with package information
Updating dependencies
Lock file operations: 23 installs, 0 updates, 0 removals
- Locking bacon/bacon-qr-code (2.0.6)
- Locking dasprid/enum (1.0.3)
- Locking doctrine/inflector (2.0.4)
- Locking illuminate/collections (v8.83.4)
- Locking illuminate/contracts (v8.83.4)
- Locking illuminate/macroable (v8.83.4)
- Locking illuminate/support (v8.83.4)
- Locking jaybizzle/crawler-detect (v1.2.110)
- Locking jenssegers/agent (v2.6.4)
- Locking laravel/fortify (v1.11.2)
- Locking laravel/jetstream (v2.6.7)
- Locking mobiledetect/mobiledetectlib (2.8.39)
- Locking nesbot/carbon (2.57.0)
- Locking paragonie/constant_time_encoding (v2.5.0)
- Locking pragmarx/google2fa (8.0.0)
- Locking psr/container (1.1.2)
- Locking psr/simple-cache (1.0.1)
- Locking symfony/deprecation-contracts (v2.5.0)
- Locking symfony/polyfill-mbstring (v1.25.0)
- Locking symfony/polyfill-php80 (v1.25.0)
- Locking symfony/translation (v5.4.6)
- Locking symfony/translation-contracts (v2.5.0)
- Locking voku/portable-ascii (1.6.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 23 installs, 0 updates, 0 removals
- Downloading illuminate/macroable (v8.83.4)
- Downloading illuminate/contracts (v8.83.4)
- Downloading illuminate/collections (v8.83.4)
- Downloading illuminate/support (v8.83.4)
- Installing dasprid/enum (1.0.3): Extracting archive
- Installing bacon/bacon-qr-code (2.0.6): Extracting archive
- Installing doctrine/inflector (2.0.4): Extracting archive
- Installing illuminate/macroable (v8.83.4): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing psr/container (1.1.2): Extracting archive
- Installing illuminate/contracts (v8.83.4): Extracting archive
- Installing illuminate/collections (v8.83.4): Extracting archive
- Installing jaybizzle/crawler-detect (v1.2.110): Extracting archive
- Installing paragonie/constant_time_encoding (v2.5.0): Extracting archive
- Installing pragmarx/google2fa (8.0.0): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing symfony/translation-contracts (v2.5.0): Extracting archive
- Installing symfony/polyfill-php80 (v1.25.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.25.0): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.0): Extracting archive
- Installing symfony/translation (v5.4.6): Extracting archive
- Installing nesbot/carbon (2.57.0): Extracting archive
- Installing illuminate/support (v8.83.4): Extracting archive
- Installing laravel/fortify (v1.11.2): Extracting archive
- Installing mobiledetect/mobiledetectlib (2.8.39): Extracting archive
- Installing jenssegers/agent (v2.6.4): Extracting archive
- Installing laravel/jetstream (v2.6.7): Extracting archive
12 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
2.2 前端开发技术栈选择
2.1.2.1 Livewire + Blade (Laravel默认)
2.1.2.1.1 安装Livewire使用 PHP 代码编写页面组件
php artisan jetstream:install livewire
PS D:\web_www\jet> php artisan jetstream:install livewire
Migration created successfully!
./composer.json has been updated
Running composer update livewire/livewire
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking livewire/livewire (v2.10.4)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing livewire/livewire (v2.10.4): Extracting archive
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: jenssegers/agent
Discovered Package: laravel/fortify
Discovered Package: laravel/jetstream
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
Copied Directory [\vendor\laravel\sanctum\database\migrations] To [\database\migrations]
Copied File [\vendor\laravel\sanctum\config\sanctum.php] To [\config\sanctum.php]
Publishing complete.
Livewire scaffolding installed successfully.
Please execute "npm install && npm run dev" to build your assets.
2.1.2.1.2 编译安装资源
npm install
npm run dev
PS D:\web_www\jet> npm install
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
added 795 packages in 31s
PS D:\web_www\jet> npm run dev
> dev
> npm run development
> development
> mix
● Mix █████████████████████████ emitting (95%)
emit
● Mix █████████████████████████ done (99%) plugins
WebpackBar:done
√ Mix
Compiled successfully in 2.48s
Laravel Mix v6.0.43
✔ Compiled Successfully in 2423ms
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────┐
│ File │ Size │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┤
│ /js/app.js │ 715 KiB │
│ css/app.css │ 47.3 KiB │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────┘
webpack compiled successfully
2.1.2.1.3 数据库迁移(初始化数据填充)
migrate前确定在env环境已经设置好数据库连接配置
.env
B_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=jet
DB_USERNAME=jet
DB_PASSWORD=123456
php artisan migrate
PS D:\web_www\jet> php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (56.56ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (39.11ms)
Migrating: 2014_10_12_200000_add_two_factor_columns_to_users_table
Migrated: 2014_10_12_200000_add_two_factor_columns_to_users_table (36.77ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (40.35ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (82.66ms)
Migrating: 2022_03_09_090422_create_sessions_table
Migrated: 2022_03_09_090422_create_sessions_table (101.03ms)
2.1.2.1.4 发布Blade组件视图模板
php artisan vendor:publish --tag=jetstream-views
PS D:\web_www\jet> php artisan vendor:publish --tag=jetstream-views
Copied Directory [\vendor\laravel\jetstream\resources\views] To [\resources\views\vendor\jetstream]
Publishing complete.
2.1.2.1.5 定制应用资源
视图组件资源在resources/views/vendor/jetstream/components/
自定义应用Logo SVGs
resources/views/vendor/jetstream/components/application-logo.blade.php, > resources/views/vendor/jetstream/components/authentication-card-logo.blade.php
resources/views/vendor/jetstream/components/application-mark.blade.php
2.1.2.2 Inertia.js + Vue
2.1.2.2.1 安装Inertia,使用Vue前端框架编写页面组件
php artisan jetstream:install inertia
- 创建新的laravel项目
PS D:\web_www> composer create-project laravel/laravel ine Creating a "laravel/laravel" project at "./ine"
Installing laravel/laravel (v8.6.11)
- Installing laravel/laravel (v8.6.11): Extracting archive
Created project in D:\web_www\ine
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 110 installs, 0 updates, 0 removals
- Locking asm89/stack-cors (v2.1.1)
- Locking brick/math (0.9.3)
- Locking dflydev/dot-access-data (v3.0.1)
- Locking doctrine/inflector (2.0.4)
- Locking doctrine/instantiator (1.4.1)
- Locking doctrine/lexer (1.2.3)
- Locking dragonmantank/cron-expression (v3.3.1)
- Locking egulias/email-validator (2.1.25)
- Locking facade/flare-client-php (1.9.1)
- Locking facade/ignition (2.17.5)
- Locking facade/ignition-contracts (1.0.2)
- Locking fakerphp/faker (v1.19.0)
- Locking filp/whoops (2.14.5)
- Locking fruitcake/laravel-cors (v2.2.0)
- Locking graham-campbell/result-type (v1.0.4)
- Locking guzzlehttp/guzzle (7.4.1)
- Locking guzzlehttp/promises (1.5.1)
- Locking guzzlehttp/psr7 (2.1.0)
- Locking hamcrest/hamcrest-php (v2.0.1)
- Locking laravel/framework (v8.83.4)
- Locking laravel/sail (v1.13.6)
- Locking laravel/sanctum (v2.14.2)
- Locking laravel/serializable-closure (v1.1.1)
- Locking laravel/tinker (v2.7.0)
- Locking league/commonmark (2.2.3)
- Locking league/config (v1.1.1)
- Locking league/flysystem (1.1.9)
- Locking league/mime-type-detection (1.9.0)
- Locking mockery/mockery (1.5.0)
- Locking monolog/monolog (2.3.5)
- Locking myclabs/deep-copy (1.11.0)
- Locking nesbot/carbon (2.57.0)
- Locking nette/schema (v1.2.2)
- Locking nette/utils (v3.2.7)
- Locking nikic/php-parser (v4.13.2)
- Locking nunomaduro/collision (v5.11.0)
- Locking opis/closure (3.6.3)
- Locking phar-io/manifest (2.0.3)
- Locking phar-io/version (3.2.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.3.0)
- Locking phpdocumentor/type-resolver (1.6.0)
- Locking phpoption/phpoption (1.8.1)
- Locking phpspec/prophecy (v1.15.0)
- Locking phpunit/php-code-coverage (9.2.15)
- Locking phpunit/php-file-iterator (3.0.6)
- Locking phpunit/php-invoker (3.1.1)
- Locking phpunit/php-text-template (2.0.4)
- Locking phpunit/php-timer (5.0.3)
- Locking phpunit/phpunit (9.5.18)
- Locking psr/container (1.1.2)
- Locking psr/event-dispatcher (1.0.0)
- Locking psr/http-client (1.0.1)
- Locking psr/http-factory (1.0.1)
- Locking psr/http-message (1.0.1)
- Locking psr/log (1.1.4)
- Locking psr/simple-cache (1.0.1)
- Locking psy/psysh (v0.11.2)
- Locking ralouphie/getallheaders (3.0.3)
- Locking ramsey/collection (1.2.2)
- Locking ramsey/uuid (4.2.3)
- Locking sebastian/cli-parser (1.0.1)
- Locking sebastian/code-unit (1.0.8)
- Locking sebastian/code-unit-reverse-lookup (2.0.3)
- Locking sebastian/comparator (4.0.6)
- Locking sebastian/complexity (2.0.2)
- Locking sebastian/diff (4.0.4)
- Locking sebastian/environment (5.1.3)
- Locking sebastian/exporter (4.0.4)
- Locking sebastian/global-state (5.0.5)
- Locking sebastian/lines-of-code (1.0.3)
- Locking sebastian/object-enumerator (4.0.4)
- Locking sebastian/object-reflector (2.0.4)
- Locking sebastian/recursion-context (4.0.4)
- Locking sebastian/resource-operations (3.0.3)
- Locking sebastian/type (2.3.4)
- Locking sebastian/version (3.0.2)
- Locking swiftmailer/swiftmailer (v6.3.0)
- Locking symfony/console (v5.4.5)
- Locking symfony/css-selector (v5.4.3)
- Locking symfony/deprecation-contracts (v2.5.0)
- Locking symfony/error-handler (v5.4.3)
- Locking symfony/event-dispatcher (v5.4.3)
- Locking symfony/event-dispatcher-contracts (v2.5.0)
- Locking symfony/finder (v5.4.3)
- Locking symfony/http-foundation (v5.4.6)
- Locking symfony/http-kernel (v5.4.6)
- Locking symfony/mime (v5.4.3)
- Locking symfony/polyfill-ctype (v1.25.0)
- Locking symfony/polyfill-iconv (v1.25.0)
- Locking symfony/polyfill-intl-grapheme (v1.25.0)
- Locking symfony/polyfill-intl-idn (v1.25.0)
- Locking symfony/polyfill-intl-normalizer (v1.25.0)
- Locking symfony/polyfill-mbstring (v1.25.0)
- Locking symfony/polyfill-php72 (v1.25.0)
- Locking symfony/polyfill-php73 (v1.25.0)
- Locking symfony/polyfill-php80 (v1.25.0)
- Locking symfony/polyfill-php81 (v1.25.0)
- Locking symfony/process (v5.4.5)
- Locking symfony/routing (v5.4.3)
- Locking symfony/service-contracts (v2.5.0)
- Locking symfony/string (v5.4.3)
- Locking symfony/translation (v5.4.6)
- Locking symfony/translation-contracts (v2.5.0)
- Locking symfony/var-dumper (v5.4.6)
- Locking theseer/tokenizer (1.2.1)
- Locking tijsverkoyen/css-to-inline-styles (2.2.4)
- Locking vlucas/phpdotenv (v5.4.1)
- Locking voku/portable-ascii (1.6.1)
- Locking webmozart/assert (1.10.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 110 installs, 0 updates, 0 removals
- Installing doctrine/inflector (2.0.4): Extracting archive
- Installing doctrine/lexer (1.2.3): Extracting archive
- Installing symfony/polyfill-ctype (v1.25.0): Extracting archive
- Installing webmozart/assert (1.10.0): Extracting archive
- Installing dragonmantank/cron-expression (v3.3.1): Extracting archive
- Installing symfony/polyfill-php80 (v1.25.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.25.0): Extracting archive
- Installing symfony/var-dumper (v5.4.6): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.25.0): Extracting archive
- Installing symfony/string (v5.4.3): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.0): Extracting archive
- Installing psr/container (1.1.2): Extracting archive
- Installing symfony/service-contracts (v2.5.0): Extracting archive
- Installing symfony/polyfill-php73 (v1.25.0): Extracting archive
- Installing symfony/console (v5.4.5): Extracting archive
- Installing psr/log (1.1.4): Extracting archive
- Installing monolog/monolog (2.3.5): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing phpoption/phpoption (1.8.1): Extracting archive
- Installing graham-campbell/result-type (v1.0.4): Extracting archive
- Installing vlucas/phpdotenv (v5.4.1): Extracting archive
- Installing symfony/css-selector (v5.4.3): Extracting archive
- Installing tijsverkoyen/css-to-inline-styles (2.2.4): Extracting archive
- Installing symfony/routing (v5.4.3): Extracting archive
- Installing symfony/process (v5.4.5): Extracting archive
- Installing symfony/polyfill-php72 (v1.25.0): Extracting archive
- Installing symfony/polyfill-intl-idn (v1.25.0): Extracting archive
- Installing symfony/mime (v5.4.3): Extracting archive
- Installing symfony/http-foundation (v5.4.6): Extracting archive
- Installing psr/event-dispatcher (1.0.0): Extracting archive
- Installing symfony/event-dispatcher-contracts (v2.5.0): Extracting archive
- Installing symfony/event-dispatcher (v5.4.3): Extracting archive
- Installing symfony/error-handler (v5.4.3): Extracting archive
- Installing symfony/http-kernel (v5.4.6): Extracting archive
- Installing symfony/finder (v5.4.3): Extracting archive
- Installing symfony/polyfill-iconv (v1.25.0): Extracting archive
- Installing egulias/email-validator (2.1.25): Extracting archive
- Installing swiftmailer/swiftmailer (v6.3.0): Extracting archive
- Installing symfony/polyfill-php81 (v1.25.0): Extracting archive
- Installing ramsey/collection (1.2.2): Extracting archive
- Installing brick/math (0.9.3): Extracting archive
- Installing ramsey/uuid (4.2.3): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing opis/closure (3.6.3): Extracting archive
- Installing symfony/translation-contracts (v2.5.0): Extracting archive
- Installing symfony/translation (v5.4.6): Extracting archive
- Installing nesbot/carbon (2.57.0): Extracting archive
- Installing league/mime-type-detection (1.9.0): Extracting archive
- Installing league/flysystem (1.1.9): Extracting archive
- Installing nette/utils (v3.2.7): Extracting archive
- Installing nette/schema (v1.2.2): Extracting archive
- Installing dflydev/dot-access-data (v3.0.1): Extracting archive
- Installing league/config (v1.1.1): Extracting archive
- Installing league/commonmark (2.2.3): Extracting archive
- Installing laravel/serializable-closure (v1.1.1): Extracting archive
- Installing laravel/framework (v8.83.4): Extracting archive
- Installing facade/ignition-contracts (1.0.2): Extracting archive
- Installing facade/flare-client-php (1.9.1): Extracting archive
- Installing facade/ignition (2.17.5): Extracting archive
- Installing fakerphp/faker (v1.19.0): Extracting archive
- Installing asm89/stack-cors (v2.1.1): Extracting archive
- Installing fruitcake/laravel-cors (v2.2.0): Extracting archive
- Installing psr/http-message (1.0.1): Extracting archive
- Installing psr/http-client (1.0.1): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-factory (1.0.1): Extracting archive
- Installing guzzlehttp/psr7 (2.1.0): Extracting archive
- Installing guzzlehttp/promises (1.5.1): Extracting archive
- Installing guzzlehttp/guzzle (7.4.1): Extracting archive
- Installing laravel/sail (v1.13.6): Extracting archive
- Installing laravel/sanctum (v2.14.2): Extracting archive
- Installing nikic/php-parser (v4.13.2): Extracting archive
- Installing psy/psysh (v0.11.2): Extracting archive
- Installing laravel/tinker (v2.7.0): Extracting archive
- Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
- Installing mockery/mockery (1.5.0): Extracting archive
- Installing filp/whoops (2.14.5): Extracting archive
- Installing nunomaduro/collision (v5.11.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing phpdocumentor/type-resolver (1.6.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
- Installing sebastian/version (3.0.2): Extracting archive
- Installing sebastian/type (2.3.4): Extracting archive
- Installing sebastian/resource-operations (3.0.3): Extracting archive
- Installing sebastian/recursion-context (4.0.4): Extracting archive
- Installing sebastian/object-reflector (2.0.4): Extracting archive
- Installing sebastian/object-enumerator (4.0.4): Extracting archive
- Installing sebastian/global-state (5.0.5): Extracting archive
- Installing sebastian/exporter (4.0.4): Extracting archive
- Installing sebastian/environment (5.1.3): Extracting archive
- Installing sebastian/diff (4.0.4): Extracting archive
- Installing sebastian/comparator (4.0.6): Extracting archive
- Installing sebastian/code-unit (1.0.8): Extracting archive
- Installing sebastian/cli-parser (1.0.1): Extracting archive
- Installing phpunit/php-timer (5.0.3): Extracting archive
- Installing phpunit/php-text-template (2.0.4): Extracting archive
- Installing phpunit/php-invoker (3.1.1): Extracting archive
- Installing phpunit/php-file-iterator (3.0.6): Extracting archive
- Installing theseer/tokenizer (1.2.1): Extracting archive
- Installing sebastian/lines-of-code (1.0.3): Extracting archive
- Installing sebastian/complexity (2.0.2): Extracting archive
- Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
- Installing phpunit/php-code-coverage (9.2.15): Extracting archive
- Installing doctrine/instantiator (1.4.1): Extracting archive
- Installing phpspec/prophecy (v1.15.0): Extracting archive
- Installing phar-io/version (3.2.1): Extracting archive
- Installing phar-io/manifest (2.0.3): Extracting archive
- Installing myclabs/deep-copy (1.11.0): Extracting archive
- Installing phpunit/phpunit (9.5.18): Extracting archive
83 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
77 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
> @php artisan key:generate --ansi
Application key set successfully.
- 进入项目根目录,安装Jetstream扩展
PS D:\web_www> cd ine
PS D:\web_www\ine> composer require laravel/jetstream Using version ^2.6 for laravel/jetstream
./composer.json has been created
Running composer update laravel/jetstream
Loading composer repositories with package information
Updating dependencies
Lock file operations: 23 installs, 0 updates, 0 removals
- Locking bacon/bacon-qr-code (2.0.6)
- Locking dasprid/enum (1.0.3)
- Locking doctrine/inflector (2.0.4)
- Locking illuminate/collections (v8.83.4)
- Locking illuminate/contracts (v8.83.4)
- Locking illuminate/macroable (v8.83.4)
- Locking illuminate/support (v8.83.4)
- Locking jaybizzle/crawler-detect (v1.2.110)
- Locking jenssegers/agent (v2.6.4)
- Locking laravel/fortify (v1.11.2)
- Locking laravel/jetstream (v2.6.7)
- Locking mobiledetect/mobiledetectlib (2.8.39)
- Locking nesbot/carbon (2.57.0)
- Locking paragonie/constant_time_encoding (v2.5.0)
- Locking pragmarx/google2fa (8.0.0)
- Locking psr/container (1.1.2)
- Locking psr/simple-cache (1.0.1)
- Locking symfony/deprecation-contracts (v2.5.0)
- Locking symfony/polyfill-mbstring (v1.25.0)
- Locking symfony/polyfill-php80 (v1.25.0)
- Locking symfony/translation (v5.4.6)
- Locking symfony/translation-contracts (v2.5.0)
- Locking voku/portable-ascii (1.6.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 23 installs, 0 updates, 0 removals
- Installing dasprid/enum (1.0.3): Extracting archive
- Installing bacon/bacon-qr-code (2.0.6): Extracting archive
- Installing doctrine/inflector (2.0.4): Extracting archive
- Installing illuminate/macroable (v8.83.4): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Installing psr/container (1.1.2): Extracting archive
- Installing illuminate/contracts (v8.83.4): Extracting archive
- Installing illuminate/collections (v8.83.4): Extracting archive
- Installing jaybizzle/crawler-detect (v1.2.110): Extracting archive
- Installing paragonie/constant_time_encoding (v2.5.0): Extracting archive
- Installing pragmarx/google2fa (8.0.0): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing symfony/translation-contracts (v2.5.0): Extracting archive
- Installing symfony/polyfill-php80 (v1.25.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.25.0): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.0): Extracting archive
- Installing symfony/translation (v5.4.6): Extracting archive
- Installing nesbot/carbon (2.57.0): Extracting archive
- Installing illuminate/support (v8.83.4): Extracting archive
- Installing laravel/fortify (v1.11.2): Extracting archive
- Installing mobiledetect/mobiledetectlib (2.8.39): Extracting archive
- Installing jenssegers/agent (v2.6.4): Extracting archive
- Installing laravel/jetstream (v2.6.7): Extracting archive
12 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PS D:\web_www\ine> php artisan jetstream:install inertia Migration created successfully!
./composer.json has been updated
Running composer update inertiajs/inertia-laravel tightenco/ziggy
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 0 updates, 0 removals
- Locking inertiajs/inertia-laravel (v0.5.4)
- Locking tightenco/ziggy (v1.4.3)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Downloading inertiajs/inertia-laravel (v0.5.4)
- Downloading tightenco/ziggy (v1.4.3)
0/2 [>---------------------------] 0%
1/2 [==============>-------------] 50%
2/2 [============================] 100%
- Installing inertiajs/inertia-laravel (v0.5.4): Extracting archive
- Installing tightenco/ziggy (v1.4.3): Extracting archive
0 [>---------------------------] 0 [>---------------------------]
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: jenssegers/agent
Discovered Package: laravel/fortify
Discovered Package: laravel/jetstream
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
Copied Directory [\vendor\laravel\sanctum\database\migrations] To [\database\migrations]
Copied File [\vendor\laravel\sanctum\config\sanctum.php] To [\config\sanctum.php]
Publishing complete.
There are no commands defined in the "inertia" namespace.
Inertia scaffolding installed successfully.
Please execute "npm install && npm run dev" to build your assets.
2.1.2.2.2 编译安装
npm install
npm run dev
2.1.2.2.3 配置数据库.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ine
DB_USERNAME=ine
DB_PASSWORD=123456
2.1.2.2.4 数据迁移
php artisan migrate
2.1.2.2.5 自定义修改LOGO
resources/js/Jetstream/AuthenticationCardLogo.vue
resources/js/Jetstream/ApplicationLogo.vue
resources/js/Jetstream/ApplicationMark.vue
2.1.2.2.6 重新编译
npm run dev
3. Laravel Fortify 自定义用户认证
待更新
4. Laravel Sanctum API令牌身份认证
待更新
5. Passport OAuth2 API后端身份认证
待更新
6. 常见错误处理
6.1 1071 Specified key was too long
php artisan migrate时报错:1071 Specified key was too long
手动配置迁移命令migrate生成的默认字符串长度,在/app/Providers/AppServiceProvider中调用Schema::defaultStringLength方法来实现:
use Illuminate\Support\Facades\Schema;
Schema::defaultStringLength(191);
打开/app/Providers/AppServiceProvider.php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
Schema::defaultStringLength(191);
}
}
6.2 HandleInertiaRequests does not exist
访问页面报错
Illuminate\Contracts\Container\BindingResolutionException
Target class [App\Http\Middleware\HandleInertiaRequests] does not exist.
http://127.0.0.1:8000/
手动添加中间件HandleInertiaRequests
php artisan inertia:middleware
PS D:\web_www\ine> php artisan inertia:middleware Middleware created successfully.
本文详细介绍了在Windows 10环境下,Laravel8 的多种用户认证服务扩展安装步骤,包括Laravel UI、Laravel-Admin 2.0、Laravel8 Breeze、Laravel Jetstream,涉及注册、登录、权限系统、数据库配置和前端资源编译等关键操作。
691

被折叠的 条评论
为什么被折叠?



