Introduce an API endpoint to obtain public keys, that can be used to verify access tokens on other services

This commit is contained in:
ErickSkrauch
2024-06-14 04:36:49 +02:00
parent 17109f8eb5
commit 2111e1769f
3 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
namespace api\controllers;
use api\filters\NginxCache;
use Yii;
use yii\helpers\ArrayHelper;
use yii\web\Controller as BaseController;
final class PublicKeysController extends BaseController {
public function behaviors(): array {
return ArrayHelper::merge(parent::behaviors(), [
'nginxCache' => [
'class' => NginxCache::class,
'rules' => [
'index' => 3600, // 1h
],
],
]);
}
public function actionIndex(): array {
return [
'keys' => [
[
'alg' => 'ES256', // Hardcoded for awhile since right now there is no way to find used algo
'pem' => Yii::$app->tokens->getPublicKey(),
],
],
];
}
}