altelma / laravel-hydra

Laravel 的 Hydra API 客户端

v0.0.3 2022-05-13 05:02 UTC

This package is auto-updated.

Last update: 2024-09-13 10:08:54 UTC


README

Latest Version on Packagist Total Downloads

Laravel Hydra 是一个提供 Hydra 支持和遵循最新 PHP 版本的客户端 API 的包。

Laravel Hydra Cover

什么是 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

支持我 ☕

大家好,如果有什么建议,请告诉我。此外,大家可以阅读我的更多文章 这里

错误报告

这个包还不完美,但我们可以一起改进。如果您发现了错误或有任何建议,请发送给我或创建新问题。感谢使用它。