>本教程展示了使用现代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中文网其他相关文章!