danilowa/laravel-api-auth

一个简单且可配置的Laravel包,用于轻松实现API身份验证,并带有标准化的响应。

1.0.2 2024-09-23 05:31 UTC

This package is auto-updated.

Last update: 2024-09-23 05:32:23 UTC


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项目中,请按照以下步骤操作

  1. 通过Composer安装

在您的终端中运行以下命令

composer require danilowa/laravel-api-auth
  1. 发布配置(可选)

安装后,发布配置文件

php artisan vendor:publish --provider="Danilowa\LaravelApiAuth\Providers\ApiAuthServiceProvider"

这将创建一个配置文件在config/apiauth.php,您可以在此处自定义包设置。

配置

包配置可以在config/apiauth.php文件中找到。此文件允许您根据项目需求自定义API身份验证系统的各个方面。

主要配置

  1. 路由前缀

    • route_prefix: 允许您为所有身份验证路由定义自定义前缀。默认设置为auth。您可以通过API_AUTH_ROUTE_PREFIX环境变量进行自定义,例如更改为v1/auth
  2. 用户模型配置

    • user_model: 指定用于身份验证的用户模型类名。默认为App\Models\User::class。如果您有自定义用户模型,请相应地更改此值。
  3. 令牌设置

    • default_token_name: 定义在注册或登录期间生成的访问令牌的默认名称。如果需要,可以为每个令牌使用不同的名称。
  4. 令牌撤销策略

    • revoke_all_tokens: 一个布尔值,用于确定在注销时是否应撤销用户的全部令牌。如果设置为true,则将撤销所有令牌;如果设置为false,则仅撤销当前令牌。
  5. 可自定义消息

    • messages: 允许您在身份验证过程中自定义返回的消息。例如,您可以修改“用户创建成功!”等消息以符合您的沟通风格。
  6. 验证规则

    • 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许可证。

联系

对于任何问题或反馈,请联系