smartins / user-module
Requires
- adaojunior/passport-social-grant: ^3.1
- barryvdh/laravel-cors: ^0.10.0
- joshbrw/laravel-module-installer: ^0.1.3
- laravel/passport: ^3.0
- laravel/socialite: ^3.0
- nwidart/laravel-modules: ^2.0
This package is auto-updated.
Last update: 2024-09-07 06:14:48 UTC
README
此模块是一个处理API中用户的框架,包括一般所需的功能。它具有注册、认证(默认和Facebook)、密码重置和确认邮件的端点。
该模块是为与Laravel Modules 包一起使用的。这是一个组织Laravel项目结构的优秀包,可以在 modules 中而不是在 app 文件夹中保留文件。
特性
- 注册用户
- 使用 Laravel Passport 进行OAuth 2认证(默认和Facebook)。
- 重置密码
- 您可以使用路由在 浏览器 上重置密码
- GET :
/password/reset显示链接请求表单 - POST :
/password/email发送重置链接邮件 - GET :
/password/reset/{token}显示重置表单 - POST :
/password/reset重置密码
- GET :
- 或使用API端点
- 您可以使用路由在 浏览器 上重置密码
- 确认账户
使用的包
端点
POST: /v1/users - 创建用户POST: /v1/oauth/token - 默认登录和Facebook登录GET: /v1/users/{id} - 获取一个用户POST: /v1/password/email - 发送密码重置邮件POST: /v1/password/reset - 重置密码GET: /v1/account/verify/{token} - 确认邮件
更多详情请查看 Swagger 文档
事件
Illuminate\Auth\Events\Registered当用户被注册时Illuminate\Auth\Events\PasswordReset当重置密码时
配置
先决条件
- 一个 laravel 项目
安装
- 在您的项目上安装用户模块
$ composer require smartins/user-module
该模块必须位于您的项目的 Modules\User 文件夹中
数据库
重要:请注意,默认情况下,项目中的迁移 create_users_table 和 create_password_resets_table 已经存在。为了使模块正确工作,请删除默认迁移以创建 users 和 password_resets_table,并使用用户模块中的迁移。您可以在 Modules\User\Database\Migrations 中查看表结构。
- 发布模块迁移
$ php artisan module:publish-migration User
- 并运行迁移
$ php artisan migrate
将创建 users、password_resets 和 Laravel Passport 迁移的迁移将执行。恭喜!您已经拥有了用于注册、确认账户、登录(OAuth2 - 默认和Facebook)以及重置用户密码的数据库结构!
API认证(Laravel Passport)
下一步是配置 Laravel Passport
- 运行
passport:install命令以生成生成安全访问令牌所需的加密密钥。复制“密码授予”客户端,它将用于生成访问令牌
$ php artisan passport:install
- 接下来,您应该在
AuthServiceProvider的 boot 方法中调用Passport::routes方法。此方法将注册生成访问令牌和吊销访问令牌、客户端和个人访问令牌所需的必要路由
<?php namespace App\Providers; use Laravel\Passport\Passport; use Illuminate\Support\Facades\Gate; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider { /** * The policy mappings for the application. * * @var array */ protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); Passport::routes(); } }
- 最后,在你的配置文件 config/auth.php 中,应将 api 身份验证守卫的驱动选项设置为 passport。这将指示你的应用程序在验证传入的 API 请求时使用 Passport 的 TokenGuard。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
在完成 Laravel Passport 配置后,你的 Laravel 项目必须准备好进行用户验证!
社交认证(Laravel Socialite)
要使用 Facebook 身份验证,你必须进行更多一些的配置。
- 你还需要添加应用程序使用的 OAuth 服务的凭证。这些凭证应放置在你的配置文件 config/services.php 中,并应使用键 facebook、twitter、linkedin、google、github 或 bitbucket,具体取决于应用程序所需的服务提供者。要使用 Facebook,请放置以下代码
'facebook' => [ 'client_id' => env('FACEBOOK_ID'), 'client_secret' => env('FACEBOOK_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT'), ],
- 在 .env 文件中设置你的 Facebook 应用程序密钥
FACEBOOK_ID=YourFacebookId FACEBOOK_SECRET=YourFacebookSecret FACEBOOK_REDIRECT=YourFacebookRedirectUrl
好了,这就是添加社交登录支持到你的 API 所需的所有配置!要添加更多的社交提供者,你只需要更新类 Modules\User\Services\SocialUserResolver.php,设置你的其他提供者。更多关于 Passport Social Grant 包的详细信息。
重置密码和电子邮件确认
电子邮件
要使重置密码和电子邮件确认功能正确工作,你需要配置 Laravel API 的发送电子邮件和队列。别担心,这很简单!
- 在你的 .env 文件中设置你的电子邮件配置。你可以在开发阶段使用 mailtrap。
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
注意:有关在 Laravel 应用程序中配置发送电子邮件的更多说明,请参阅 Laravel 文档
队列
对我来说,配置 Laravel 中的队列最简单的方法是使用 database 驱动程序。基本上,你只需要准备你的数据库,然后它就准备好了!
- 为了使用数据库队列驱动程序,你需要一个 database 表来保存作业。要生成创建此表的迁移,请运行 Artisan 命令 queue:table。一旦迁移被创建,你可以使用 migrate 命令迁移你的数据库。
$ php artisan queue:table $ php artisan migrate
- 现在你只需要启动一个进程来监视你的队列。你可以使用 Artisan 命令 queue:work
$ php artisan queue:work
- 或者配置 Supervisor
使用示例
你可以看到一个配置了 User 模块的骨架项目。了解 Laravel Robust!