danilowa / laravel-api-auth
一个简单且可配置的Laravel包,用于轻松实现API身份验证,并带有标准化的响应。
1.0.2
2024-09-23 05:31 UTC
Requires
- php: ^8.1|^8.2
- danilowa/laravel-api-response-builder: ^1.0
- laravel/framework: ^8.0|^9.0|^10.0|^11.0
- laravel/sanctum: *
README
使用Laravel API Auth简化API身份验证! 此简单且可配置的包提供了一个简单的解决方案,用于在Laravel应用程序中使用Laravel Sanctum管理API身份验证。它包括用户注册、登录、注销和检索当前用户数据的功能,所有这些都有标准化的JSON响应。
索引
特性
- 无缝用户身份验证: 使用Laravel Sanctum轻松管理用户身份验证。
- 标准化的JSON响应: 所有API交互都使用一致的结构,简化了错误处理和数据管理。
- 灵活的配置: 根据您的应用程序需求自定义响应格式和API设置。
要求
在开始使用此包之前,请确保您的项目满足以下要求
- Laravel框架: 版本9.0或更高。
- PHP: 版本8.0或更高。
- Composer: PHP依赖管理器。
安装
要集成Laravel API Auth到您的Laravel项目中,请按照以下步骤操作
- 通过Composer安装
在您的终端中运行以下命令
composer require danilowa/laravel-api-auth
- 发布配置(可选)
安装后,发布配置文件
php artisan vendor:publish --provider="Danilowa\LaravelApiAuth\Providers\ApiAuthServiceProvider"
这将创建一个配置文件在config/apiauth.php
,您可以在此处自定义包设置。
配置
包配置可以在config/apiauth.php
文件中找到。此文件允许您根据项目需求自定义API身份验证系统的各个方面。
主要配置
-
路由前缀
route_prefix
: 允许您为所有身份验证路由定义自定义前缀。默认设置为auth
。您可以通过API_AUTH_ROUTE_PREFIX
环境变量进行自定义,例如更改为v1/auth
。
-
用户模型配置
user_model
: 指定用于身份验证的用户模型类名。默认为App\Models\User::class
。如果您有自定义用户模型,请相应地更改此值。
-
令牌设置
default_token_name
: 定义在注册或登录期间生成的访问令牌的默认名称。如果需要,可以为每个令牌使用不同的名称。
-
令牌撤销策略
revoke_all_tokens
: 一个布尔值,用于确定在注销时是否应撤销用户的全部令牌。如果设置为true
,则将撤销所有令牌;如果设置为false
,则仅撤销当前令牌。
-
可自定义消息
messages
: 允许您在身份验证过程中自定义返回的消息。例如,您可以修改“用户创建成功!”等消息以符合您的沟通风格。
-
验证规则
validation
: 定义登录和注册请求的验证规则。您可以根据应用程序的策略调整这些规则,包括电子邮件或密码格式的格式要求。
配置示例
return [ 'route_prefix' => env('API_AUTH_ROUTE_PREFIX', 'auth'), 'user_model' => 'App\Models\User::class', 'default_token_name' => 'default_token', 'revoke_all_tokens' => true, 'messages' => [ 'user_created' => 'User created successfully!', 'user_logged_in' => 'User logged in!', 'credentials_incorrect' => 'The provided credentials are incorrect.', 'tokens_revoked' => 'Tokens revoked successfully!', 'default_error' => 'An error occurred.', ], 'validation' => [ 'login' => [ 'rules' => [ 'email' => 'required|email', 'password' => 'required|string', ], ], 'registration' => [ 'rules' => [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|string|min:8', 'token_name' => 'nullable|string', ], ], ], ];
API端点
此包提供了以下API端点用于用户身份验证
- POST /auth/register:注册新用户。
- POST /auth/login:登录现有用户。
- POST /auth/logout:注销已认证的用户。
- GET /auth/user:获取当前认证用户的详细信息。
使用示例
注册用户
要注册新用户,请向/auth/register
发送POST请求,以下为JSON请求体:
{ "name": "John Doe", "email": "john.doe@example.com", "password": "password123" }
登录用户
要登录,请向/auth/login
发送POST请求。
{ "email": "john.doe@example.com", "password": "password123" }
注销用户
要注销认证用户,请向/auth/logout
发送POST请求。
获取当前用户
要获取当前用户的数据,请向/auth/user
发送GET请求,并附带适当的认证令牌。
文档
API端点
注册
- 描述:此端点允许新用户通过提供他们的姓名、电子邮件和密码来注册应用程序。
- 示例请求
POST /auth/register Content-Type: application/json { "name": "John Doe", "email": "john.doe@example.com", "password": "password123" }
- 示例响应
{ "status": "success", "message": "User registered successfully.", "data": { "user": { "id": 1, "name": "John Doe", "email": "john.doe@example.com" } } }
登录
- 描述:此端点允许现有用户通过提供他们的电子邮件和密码进行登录。
- 示例请求
POST /auth/login Content-Type: application/json { "email": "john.doe@example.com", "password": "password123" }
- 示例响应
{ "status": "success", "message": "User logged in successfully.", "data": { "token": "your_jwt_token_here" } }
注销
- 描述:此端点允许认证用户从应用程序中注销。
- 示例请求
POST /auth/logout Authorization: Bearer your_jwt_token_here
- 示例响应
{ "status": "success", "message": "User logged out successfully." }
当前用户
- 描述:此端点获取当前认证用户的详细信息。
- 示例请求
GET /auth/user Authorization: Bearer your_jwt_token_here
- 示例响应
{ "status": "success", "message": "User data retrieved successfully.", "data": { "id": 1, "name": "John Doe", "email": "john.doe@example.com" } }
贡献
您可以通过fork存储库并提交拉取请求来做出贡献。
许可
此软件包采用MIT许可证。
联系
对于任何问题或反馈,请联系
- 丹尼尔·奥利维拉: daniloworkdev@gmail.com
- 网站: daniloo.dev