danieldburger1337/openid-hash

创建/验证 OpenID Connect (OIDC) 验证哈希。

v1.0.0 2024-02-24 04:48 UTC

This package is auto-updated.

Last update: 2024-08-24 05:56:23 UTC


README

PHPCSFixer PHPStan PHPUnit Packagist Version Packagist Downloads

openid-hash

创建和/或验证 OpenID Connect 1.0 ID Token 哈希(at_hashc_hashs_hash)。

此库与PSR-4兼容,可以通过PHP的依赖管理器Composer安装。

composer require danielburger1337/openid-hash

此库需要64位版本的PHP。

如何使用

构造函数接受两个参数。第一个参数是ID Token所签名的JWA算法。此值通常可以在ID Token的alg头部参数中找到。

第二个参数仅当ID Token使用EdDSA算法签名时需要。此参数必须包含用于签名ID Token的JWKcrv。此值通常可以在ID Token的crv头部参数中找到,或在OP的jwks_uri文档中。

要验证哈希,可以使用verify*Hash方法

<?php
    use danielburger1337\OpenIdHash\OpenIdHash;

    $instance = new OpenIdHash('RS256');
    // see also "verifyCodeHash", "verifyStateHash"
    $isValid = $instance->verifyAccessTokenHash('access token', 'The "at_hash" claim of the ID Token');
    // bool

要创建验证哈希,可以使用create*Hash方法

<?php
    use danielburger1337\OpenIdHash\OpenIdHash;

    $instance = new OpenIdHash('EdDSA', 'Ed448');
    // see also "createCodeHash", "createStateHash"
    $hash = $instance->createAccessTokenHash('YmJiZTAwYmYtMzgyOC00NzhkLTkyOTItNjJjNDM3MGYzOWIy9sFhvH8K_x8UIHj1osisS57f5DduL');

    print $hash; // sB_U72jyb0WgtX8TsVoqJnm6CD295W9gfSDRxkilB3LAL7REi9JYutRW_s1yE4lD8cOfMZf83gi4