Laravel ?? ??? ???? API ????? ??? ???? ??
Nov 04, 2023 pm 01:23 PMLaravel ?? ??? ???? API ????? ??? ???? ??
??:
? ??????? API ?????? ??? ???? ?? ?? ??? ???? ?? ? ???????. ?? ???? PHP ?? ?????? Laravel?? API ????? ??? ?? ???? ??? ? ?? ??? ?? ?? ??? ???? ????. ? ???? Laravel? ?? ??? ???? API ????? ??? ???? ??? ??? ???? ?? ?? ??? ?????.
1. Laravel? ?? ?? ?? ? ??:
-
?? Composer? ???? Laravel? ?? ?? ???? Spatie-Permission? ???? ???. ????? ????? ????? ?? ??? ?????.
composer require spatie/laravel-permission
??? ??? ? ????? ?????? config/app.php ??? ??? ??? ServiceProvider? ???? ???. ??? ?? ?? ?? ?????.
'providers' => [ // ... SpatiePermissionPermissionServiceProvider::class, ],
???? ????? ?? ??? ???? ????? ?? ??? ?????? ?????? ??? ?????.
php artisan vendor:publish --provider="SpatiePermissionPermissionServiceProvider"
?????? ?????? ??? ???? ?? ??? ?????. tables:
php artisan migrate
- ? ??? ??? ? Laravel? ?? ??? ????? ???? ??????.
2. Laravel ?? ??? ???? API ????? ?? ??:
API ?????? ??? ??? ?? ??:
routes/api.php ??? API ????? ??? ?????. ?:Route::middleware('auth:api')->group(function () { Route::get('/user', 'UserController@index')->name('api.user.index')->middleware('permission:view-users'); Route::post('/user', 'UserController@store')->name('api.user.store')->middleware('permission:create-users'); Route::put('/user/{id}', 'UserController@update')->name('api.user.update')->middleware('permission:update-users'); Route::delete('/user/{id}', 'UserController@destroy')->name('api.user.destroy')->middleware('permission:delete-users'); });
?? ???? ? ?? ????? ?????.
auth:api
? ???? ??? ???? ? ????permission:xxx
? ????? ?? ??? ??? ???? ? ?????.auth:api
用于驗證用戶的身份,permission:xxx
用于驗證用戶是否具有對應(yīng)的權(quán)限。在User模型中關(guān)聯(lián)權(quán)限角色:
在User模型中使用Laravel的HasRoles
trait來關(guān)聯(lián)權(quán)限角色。在app/User.php文件中添加以下行:use SpatiePermissionTraitsHasRoles; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable, HasRoles; // ... }
在AuthServiceProvider中定義權(quán)限:
在app/Providers/AuthServiceProvider.php文件的boot
方法中,使用Laravel的Gate
類定義API接口的權(quán)限。例如:use IlluminateContractsAuthAccessGate; class AuthServiceProvider extends ServiceProvider { public function boot(Gate $gate) { $this->registerPolicies(); $gate->define('view-users', function ($user) { return $user->hasPermissionTo('view-users'); }); $gate->define('create-users', function ($user) { return $user->hasPermissionTo('create-users'); }); $gate->define('update-users', function ($user, $id) { return $user->hasPermissionTo('update-users') && $user->id === $id; }); $gate->define('delete-users', function ($user, $id) { return $user->hasPermissionTo('delete-users') && $user->id === $id; }); } }
以上示例中,我們使用了Laravel的
Gate
類來定義權(quán)限。具體的權(quán)限名稱可以根據(jù)實際需求進(jìn)行定義和命名。給用戶分配權(quán)限:
??? ???? ?? ?? ??:
使用Laravel的assignRole
和syncPermissions
??? ???? Laravel?
HasRoles
??? ???? ?? ??? ?????. app/User.php ??? ?? ??? ?????: public function store(Request $request) { // 創(chuàng)建用戶... // 給用戶分配角色 $user->assignRole('admin'); // 給用戶分配權(quán)限 $user->syncPermissions(['view-users', 'create-users', 'update-users', 'delete-users']); // ... }
boot
????? Laravel? Gate ???? API ?????? ??? ?????. ?: ??rrreee???? ???? Laravel? Gate
???? ???? ??? ??????. ?? ??? ?? ?? ?? ??? ???? ??? ??? ? ????. ????????????? ?? ??: ??Laravel? signRole
? syncPermissions
???? ???? ????? ??? ?????. ?? ??, UserController.php ??? store ????? ??? ?? ????? ??? ??? ? ????: ??rrreee???? ???? ????? 'admin'??? ??? ???? ?? ??? 4?? ??? ??????. ???????? 3. ??: ??? ???? Laravel? ?? ??? ???? API ????? ??? ???? ??? ???? ?? ?? ??? ?????. Laravel ?? ??? ???? ?????? API ?????? ?? ?? ?? ? ??? ?? ??? ? ????. ? ??? ??? ??? ????. ??? ??? Laravel ?? ??? ???? API ????? ??? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

Redis? ???? ?? ???? ??? ???? ?? ??: ???? ??? ???? ?? ?? ???? ??? ?? ? ?? ???? ????. ?? ????? ???? ??? ??? ?????. ??? ???? ?? ??? ?? ????? ???? ??? ???????. Redis? ??? ???? ?? ???? ??? ?? ???? ???? ??? ???? ???? ? ????. 1. Redis ?? Redis? ???? ?? ? ?? ??? ??? ???? ?? ??? ?? ??? ?? ??????.

Java? ?? ?? ?? ??? ???? ??? ?????? ?? ?? ????? ??? ?? ??? ?? ??? ?????. ?? ??? ?????? ??? ??? ?? ?? ??? ? ? ??????, ??? ??? ??? ????, ? ??? ???? ?? ???? ?? ??? ?? ? ????. ? ????? Java ????? ??? ???? ?? ?? ?? ??? ???? ??? ?? ?????. ??, ?? ??? ??? ??? ???? ???. ????? ??? ??? ??? ?? ??? ? ????.

Kirin ?? ???? ???? ??? ???? ???? ??? ?????? Kirin ?? ??? ???? ????? ??? Linux ?? ?? ?????. ?? ?? ??, ?? ? ???? ??? ??? ???? ?? ???????. ? ????? Kirin ?? ???? ???? ??? ???? ???? ??? ???? ??? ??? ???? ??? ? ? ???? ??? ? ??? ????. 1. ?? ????? ?? ???? ?? ?? ? ??? ???? ?? ? ?? ??? ?????? ???? ???. Kirin OS??? ??? ??? ? ????.

Laravel ?? ??? ??: ?? ??? ??? ?? ?????. ??: Laravel ????? ????? ???? ???? ????? ?? ?? ??? ??? ???? ??? ????. Laravel ?? ??? ?? ???? ???? ??? ?? ??? ??? ?? ??? ? ?? ?? ??? ?? ???? ????? ??????. ? ???? Laravel ?? ??? ??? ?? ??? ???? ????, ? ?? ???? ?? ??? ???? ???? ?? ? ? ???? ??? ? ??? ????. ??? ????

Oracle ???????? ??? ????? ??? ?? ??? ?????. Oracle ???????? ??? ????(MasterDirectory)? ?? ??? ?? ??? ??? ?? ??? ?? ?? ??? ?????? ????. ??? ??????. ? ????? ???? ?????? ??? ?? ? ???? ?? ???? ??????? ??? ??? ???? ? ????. ? ????? ??? ?? ???? ??? ? ????. 1. ? ???? ?? ? ????? ????? ??? ?????.

win10 ???? ??? ? ???? ???? ????? ??? ??? ???? ????? ??? ??? ??? ???? ???? ??? ??? ?? ???? ????? ??? ? ?? ?? ??????. ?? ??? ?????. ??? ???? ?? ???. Win10 ??? ??? ?? ?? ?? ??? ? ? ????. 1. ?? ???? ?? ?????. 2. ?? ?? ?? ? ?? ?? ??? ?????. 3. ???? ????? ???? ? ?????. 4. ??? ??? ? ??? ??? ??? ??? ??? ??? ???. 5. ???? ??? ??? ???? +? ??? Enter? ????. 6. ??? ???? ???? ?? ?????.

Kirin ?? ???? ?? ??? ??? ???? ???? ??? ?????? Kirin ?? ??? Linux ?? ?? ???, ?? ?? ??? ?? ? ?? ??? ??? ?? ???? ?????. ??? ???? ?? ????? ??? ????? ??? ???? ?? ??? ????. ?? ????? ??? ???? ???? ???. ? ???? ?? ??? ?? ??? ??, ???? ?? ??, ??? ?? ?? ?? ? Kirin ?? ???? ?? ??? ??? ???? ???? ??? ?????. ? ??,

?? ??? ?? Hyperf ?????? ???? ?? ??? ?????? ??? ????? ??? ?? ? ???? ?? ?????? ?? ??? ?? ?? ??? ?????. ? ????? ?? ??? ?? Hyperf ?????? ???? ??? ???? ?? ?? ??? ?????. Hyperf ?????? Swoole? ???? ??? ??? ??????, ??? ?? ?? ??? ???? ??? ?? ???? ? ?? ??? ??? ????. Hyperf ?????? Redis ? Memcach? ?? ?? ?? ????? ?????.
