![](/img/trans.png)
[英]How to disable personal teams in Laravel / Jetstream when using Inertia?
[英]How to use laravel's can() on routes when using JetStream
當與 JetStream 的權限結合使用時,我正在嘗試研究如何在路線上使用->can()
。
我可以看到如何在JetStreamServiceProvider.php
中創建權限:
protected function configurePermissions()
{
Jetstream::defaultApiTokenPermissions(['read']);
Jetstream::role('admin', __('Administrator'), [
'export:orders'
])->description(__('Administrator users can perform any action.'));
但是我可以弄清楚如何將它與路線結合起來:
Route::get('/generate-export/orders', [OrderExportController::class,'show'])->name('exportOrders.show')->can(' -- not sure what to put here --');
我已經嘗試了幾件事,但一無所獲。
這些令牌用於通過 sanctum 進行身份驗證的請求。 正如他們的文件所述:
Yoiu 需要先在App\Http\Kernel.php
文件中的路由中間件數組中添加 2 個條目。
protected $routeMiddleware = [
...,
'abilities' => \Laravel\Sanctum\Http\Middleware\CheckAbilities::class,
'ability' => \Laravel\Sanctum\Http\Middleware\CheckForAnyAbility::class,
];
然后,您可以在路由中使用這些中間件。
Route::get('/generate-export/orders', [OrderExportController::class,'show'])
->name('exportOrders.show')
->middleware(['auth:sanctum', 'ability:export:orders']); // check if user has export:orders ability
至於abilities
和ability
之間的區別,引用文檔:
abilities
中間件可以分配給一個路由,以驗證傳入請求的令牌是否具有所有列出的能力:Route::get('/orders', function () { // Token has both "check-status" and "place-orders" abilities... })->middleware(['auth:sanctum', 'abilities:check-status,place-orders']);
ability
中間件可以分配給一個路由,以驗證傳入請求的令牌是否至少具有列出的能力之一:Route::get('/orders', function () { // Token has the "check-status" or "place-orders" ability... })->middleware(['auth:sanctum', 'ability:check-status,place-orders']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.