danieldburger1337 / openid-hash
创建/验证 OpenID Connect (OIDC) 验证哈希。
v1.0.0
2024-02-24 04:48 UTC
Requires
- php: ^8.2
- danielburger1337/sha3-shake: ^1.0
- spomky-labs/base64url: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.50.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2024-08-24 05:56:23 UTC
README
openid-hash
创建和/或验证 OpenID Connect 1.0 ID Token 哈希(at_hash
,c_hash
,s_hash
)。
此库与PSR-4兼容,可以通过PHP的依赖管理器Composer安装。
composer require danielburger1337/openid-hash
此库需要64位版本的PHP。
如何使用
构造函数接受两个参数。第一个参数是ID Token所签名的JWA算法。此值通常可以在ID Token的alg
头部参数中找到。
第二个参数仅当ID Token使用EdDSA
算法签名时需要。此参数必须包含用于签名ID Token的JWK的crv
。此值通常可以在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