altelma / laravel-hydra
Laravel 的 Hydra API 客户端
v0.0.3
2022-05-13 05:02 UTC
Requires
- guzzlehttp/guzzle: ^7.4
This package is auto-updated.
Last update: 2024-09-13 10:08:54 UTC
README
Laravel Hydra 是一个提供 Hydra 支持和遵循最新 PHP 版本的客户端 API 的包。
什么是 Hydra?
Hydra 是一个 OAuth 2.0 和 OpenID Connect 提供者。换句话说,它是 OAuth 2.0 授权框架以及 OpenID Connect 核心框架 1.0 的实现。作为这样的实现,它发行 OAuth 2.0 访问、刷新和 ID 令牌,允许第三方以用户的名义访问您的 API。
灵感 ❤️❤️❤️
这不是官方 Ory Hydra SDK for php。如果您想使用官方 SDK,请使用官方 Ory Hydra SDK
安装
composer require altelma/laravel-hydra
用法
创建 OAuth 客户端
// Create OAuth Client
$adminApi = new AdminApi();
$adminApi->createOAuth2Client([
"client_id" => "my-client-id",
"client_name" => "My Client ID",
"client_secret" => Str::random(32),
"scope" => "offline offline_access openid phone email profile",
"owner" => "Your company or your 3rd",
"client_uri" => "https://your-company.com",
"logo_uri" => "https://your-client-app.com/logo.png",
"redirect_uris" => [
"https://:8000/hydra/callback",
],
"grant_types" => [
"authorization_code|refresh_token"
],
"response_types" => [
"code|id_token"
],
]);
令牌验证
// Example in middleware
public function __construct(private AdminApi $oauthAdminApi)
{
}
public function handle(Request $request, Closure $next)
{
$token = $request->bearerToken();
$tokenVerification = $this->oauthAdminApi->introspectOAuth2Token($token)->active;
if (!$tokenVerification) {
throw new UnauthorizedHttpException('Bearer', 'Invalid access token');
}
return $next($request);
}
参考
HTTP API 文档: https://www.ory.sh/hydra/docs/reference/api
支持我 ☕
大家好,如果有什么建议,请告诉我。此外,大家可以阅读我的更多文章 这里
错误报告
这个包还不完美,但我们可以一起改进。如果您发现了错误或有任何建议,请发送给我或创建新问题。感谢使用它。