KnpLabs / KnpLabs/php-github-api

Caching requests while authenticating as an Integration

Aperta
#947 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
PHP
Stelle
2.2k
Fork
587
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Not sure if this is a bug or something which should be added to the documentation.
When caching requests the cache key is based on a couple of request headers (https://github.com/KnpLabs/php-github-api/pull/558). I'm assuming this works fine when using `AUTH_ACCESS_TOKEN` for authentication as this token does not change.

When authenticating as an integration it's required to include a JSON Web Token which is valid for a few seconds up to a couple of minutes (I think 10 minutes is the limit). I'm always including a new JWT token which works fine but I'm guessing this is causing trouble with caching since the cache key is changing on every request because the Authorization header has changed (new JWT token).

Replacing the Authorization header on the HeaderCacheKeyGenerator with the installation id seems like a good alternative:

```php
$builder = new Builder();
$builder->addHeaderValue('Installation-id', $installationId);

$client = new Client($builder, 'machine-man-preview');
$client->addCache($pool, [
'cache_key_generator' => new HeaderCacheKeyGenerator([
'Installation-id',
'Cookie',
'Accept',
'Content-type',
]),
]
);
```

Not sure if there is a better alternative to fix this.
Let me know if you want me to create PR to update the documentation.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start by reading HeaderCacheKeyGenerator and the caching context from pull request #558. Reproduce caching with rotating JWT Authorization headers and an installation ID, then determine whether the intended outcome is a documented limitation or a changed cache-key behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
github, php
Ambito
api, authentication
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.