teamgantt/juhwit 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

teamgantt/juhwit

最新稳定版本:5.0.0

Composer 安装命令:

composer require teamgantt/juhwit

包简介

Verify JWTs from AWS Cognito

README 文档

README

Verify JWT's from AWS Cognito

Usage

Juhwit ships with a handful of interfaces and their default implementations.

The main service provided by Juhwit is the JwtDecoder which is composed with the complimentary CognitoClaimVerifier.

<?php use TeamGantt\Juhwit\JwtDecoder; use TeamGantt\Juhwit\Models\UserPool; use TeamGantt\Juhwit\CognitoClaimVerifier; // Create a UserPool to pass to the CognitoClaimVerifier $poolId = 'some pool id from cognito'; $clientIds = ['some client id from cognito']; $region = 'us-east-2'; // we need some public keys in the form of a jwk (accessible via cognito) $jwk = json_decode(file_get_contents('path/to/jwk.json'), true); $pool = new UserPool($poolId, $clientIds, $region, $jwk); $verifier = new CognitoClaimVerifier($pool); $decoder = new JwtDecoder($verifier); // If all is valid we will get a token back - otherwise a TokenException is thrown $token = $decoder->decode($someTokenFromARequest);

Requiring extra claims

A token may be required to have certain claims.

If you want to require claims, such as custom:foo or custom:user, you can require those by providing a second argument to the decode method.

<?php use TeamGantt\Juhwit\JwtDecoder; $decoder = new JwtDecoder($verifier); $token = $decoder->decode($someTokenFromARequest, ['custom:foo', 'custom:user']);

It is also possible to require claim values to be a specific value.

use TeamGantt\Juhwit\JwtDecoder; $decoder = new JwtDecoder($verifier); $token = $decoder->decode($someTokenFromARequest, ['custom:user', 'token_use' => 'id']);

Keep in mind that instances of Token will perform their own checks against required claims. See TeamGantt\Juhwit\Models\Token::getClaimsErrors() for more information.

Customizing token creation

Juhwit provides a default implementations for id tokens and access tokens. After a jwt is verified against a public key, the claims and user provided $requiredClaims are passed to the create method of a TokenFactoryInterface.

The default CognitoTokenFactory will return an IdToken or AccessToken depending on the token type provided. When constructing the JwtDecoder a custom TokenFactoryInterface can be passed to the constructor.

This factory can be used to create custom tokens - the only requirement is that the create method returns a TokenInterface. Any TokenExceptions thrown by the factory will be caught and the token will be considered invalid.

Leveraging docker

Juhwit is tested and developed against PHP 7.4.11. This project uses a combination of docker and direnv to keep a consistent environment. To leverage direnv, cd into the juhwit project directory and run the following:

$ docker build -t juhwit:dev . $ direnv allow 

This will put your current terminal into an environment that uses the dockerized php and composer binaries. You can use them like you normally would i.e:

$ php -v $ composer list 

Running Tests

$ composer test 

统计信息

  • 总下载量: 56.49k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 2
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 6
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固