>本教程展示了使用現代API文檔工具Scramble的常見Laravel API身份驗證方法及其文檔。 CRAMBLE完全支持OpenAPI 3.1.0安全規範,啟用全面的身份驗證方法文檔。
Authorization
方法:Authorization: Bearer ***
boot
use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; public function boot() { Scramble::configure() ->withDocumentTransformers(function (OpenApi $openApi) { $openApi->secure( SecurityScheme::http('bearer') ); }); }
>這為所有端點設置了一個默認的載體令牌安全方案。 如果正確配置了Cramble的文檔路由,則狀態身份驗證將在“嘗試”功能中自動運行。
>護照身份驗證
oauth2
use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; use Dedoc\Scramble\Support\Generator\SecuritySchemes\OAuthFlow; public function boot() { Scramble::configure() ->withDocumentTransformers(function (OpenApi $openApi) { $openApi->secure( SecurityScheme::oauth2() ->flow('authorizationCode', function (OAuthFlow $flow) { $flow ->authorizationUrl(config('app.url').'/oauth/authorize') ->tokenUrl(config('app.url').'/oauth/token') ->addScope('*', 'all'); }) ); }); }要求,但其他UIS(標量,搖動)有助於從文檔中直接獲取。
oauth2
記錄Sanctum的端點
oauth/token
端點是可以通過社區基礎的爭奪擴展而實現的:Scramble::configure() ->routes(function (Route $r) { return Str::startsWith($r->uri, 'api/') || $r->uri === 'oauth/token'; });
多個標頭身份驗證
標題。
> 在查詢參數中use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; public function boot() { Scramble::configure() ->withDocumentTransformers(function (OpenApi $openApi) { $openApi->components->securitySchemes['tenant'] = SecurityScheme::apiKey('header', 'X-Tenant'); $openApi->components->securitySchemes['bearer'] = SecurityScheme::http('bearer'); $openApi->security[] = new SecurityRequirement([ 'tenant' => [], 'bearer' => [], ]); }); }api令牌
X-Tenant
如果API令牌是一個查詢參數,請使用:Authorization
use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; public function boot() { Scramble::configure() ->withDocumentTransformers(function (OpenApi $openApi) { $openApi->secure( SecurityScheme::apiKey('query', 'api_token') ); }); }
use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; public function boot() { Scramble::configure() ->withDocumentTransformers(function (OpenApi $openApi) { $openApi->secure( SecurityScheme::http('bearer') ); }); }
這將自動指定沒有身份驗證中間件的路由為公共。 這種方法還允許將特定的安全要求分配給操作。
>> OpenAPI和CRAMBLE提供了可靠的解決方案,用於記錄各種API身份驗證方法,包括基於中間件的自動處理,最大程度地減少手動註釋。 在> https://www.php.cn/link/0fcbc3c3c0cf262c771001930af2406bbc
中,探索爭奪爭奪戰。以上是記錄Laravel中的API身份驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!