vdomah/jwtauth-plugin

October CMS 的 JWTAuth 插件,提供基于令牌的身份验证

安装: 97

依赖: 0

建议者: 0

安全: 0

星标: 27

关注者: 3

分支: 20

开放问题: 8

类型:october-plugin

dev-master 2023-06-19 21:01 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:08:51 UTC


README

为您的 OctoberCMS API 集成 RainLab.User 的 JSON Web Token 身份验证

此插件为您的应用程序提供基于令牌的身份验证。它基于 Sean Tymon 的优秀包 JSON Web Token Authentication for Laravel & Lumen

要求

RainLab.User 插件

安装

  1. 【不再需要】插件安装后,您需要将 /plugins/vdomah/jwtauth/config/auth.php 复制到 {root}/config/auth.php。如果您想更改 auth.php 的参数值,可以使用 .env 中的环境变量(请参阅“环境选项”部分)。{root}/config/auth.php 仍然受支持,并具有最高优先级,高于 /plugins/vdomah/jwtauth/config/auth.php。

  2. 生成 JWT 身份验证密钥。它将用于签名您的令牌。您有 2 个选项

    • 使用命令行生成
      php artisan jwt:generate
      
      您需要将生成的值分配给 .env 中的 JWT_SECRET。
    • 转到后端 > 设置 > JWTauth 设置,单击生成密钥并保存。此值具有最高优先级,将覆盖 .env 中的 JWT_SECRET 值。

端点

该插件提供 4 个端点

  • /api/login

    尝试进行身份验证,如果成功则返回令牌。此外,响应中还包括基本用户信息。默认情况下,期望接收 2 个参数:电子邮件和密码。

  • /api/signup

    尝试创建用户,如果成功则返回令牌。响应中包括用户信息。默认情况下,期望接收 3 个参数:电子邮件、密码和密码确认。

  • /api/refresh

    尝试刷新令牌,并返回新令牌。默认情况下,期望接收 1 个参数:令牌。

  • /api/invalidate

    尝试使给定的令牌无效 - 这可以用作额外的预防措施来注销用户。默认情况下,期望接收 1 个参数:令牌。

环境选项

您可以在项目根目录的 .env 中定义这些选项中的任何一个。

JWT 配置

Laravel 身份验证配置

扩展

如何在其他插件中使用此功能?

只需将 ->middleware('\Tymon\JWTAuth\Middleware\GetUserFromToken') 添加到插件 routes.php 路由的末尾。

例如

Route::post('test', function (\Request $request) {
   return response()->json(('The test was successful'));
})->middleware('\Tymon\JWTAuth\Middleware\GetUserFromToken');

然后,在发出请求时,将头 "Authorization" 设置为 "Bearer {yourToken}"

如何定义响应中的自定义用户属性集?

对于注册和登录,通过在您的插件启动方法中扩展用户模型来添加相应的 getAuthApiSignupAttributes 或/和 getAuthApiSigninAttributes 方法。

    User::extend(function($model) {
        $model->addDynamicMethod('getAuthApiSignupAttributes', function () use ($model) {
            return [
                'my-attr' => $model->my_attr,
            ];
        });
    });