mikp/wn-sanctum-tokens-plugin

Winter CMS 的 Laravel Sanctum 插件

v0.1.0 2022-01-13 02:45 UTC

This package is auto-updated.

Last update: 2024-09-12 10:32:42 UTC


README

Buy me a tree Plant a Tree for Production

将 Laravel Sanctum API 令牌添加到 Winter.Users,以便前端用户可以通过 Sanctum 令牌进行 API 身份验证。如果您需要 API Bearer 令牌身份验证且不想使用 OAuth2,则非常有用。

依赖于

此插件依赖于 Laravel Sanctum 以获取令牌

此插件依赖于 Winter.User 插件 以获取用户信息

.htaccess 头部

默认的 wintercms 设置不允许所需的令牌头部。如果您使用 Apache,则在后端设置中有一个控制台命令和按钮,用于将必要的修改添加到 .htaccess 文件

# adds the following to the root .htaccess file

# ##
# ## Authorization header
# ##
# RewriteCond %{HTTP:Authorization} ^(.*)
# RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

php artisan sanctum:authorization --add

用法

有三个端点可以用于与令牌交互

  • {POST} api/v1/sanctum/token/create
  • {POST} api/v1/sanctum/token/refresh
  • {POST} api/v1/sanctum/token/revoke/{tokenId}

'create' 端点不作为登录使用,它由 \Winter\User\Classes\AuthMiddleware 保护,这意味着用户必须已经登录。

其他端点通过令牌进行保护,因此您需要先创建令牌并提供它作为授权信息,然后才能进行 revokerefresh

中间件

有三个中间件类

  1. HasBearerToken => 如果存在有效令牌,则允许
  2. UserFromBearerToken => 使用有效令牌登录用户
  3. SoftUserFromBearerToken => 尝试使用有效令牌登录用户或放弃并将请求传递给下一个中间件

例如,将提供的中间件添加到路由

// in your plugin's routes.php file

Route::group([
    'prefix' => 'api',
    'middleware' => [
        'api',
        'mikp\sanctum\Http\Middleware\UserFromBearerToken'
    ]
], function () {

    // do a thing
    Route::post('/thing', 'Author\Plugin\Http\Controllers\API@thing');
});

组件

有一个 API 令牌创建组件,可以用来允许用户创建和撤销自己的令牌。

'mikp\sanctum\Components\CreateToken' => 'createtoken'

许可证

此软件包是 Treeware。如果您在生产环境中使用它,我们请求您为世界买一棵树,以感谢我们的工作。通过为 Treeware 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。