增加从 Ory Hydra 生成的 OAuth 访问令牌的到期时间

Increase expiration time of OAuth access token generated from Ory Hydra

我正在按照本教程使用 JWKS 验证 JWT 令牌 Article

但是生成的access_token expires in 60 minutes.I 对于Junit 测试用例需要将这个过期时间增加到10 年。 我尝试在更改配置后生成令牌 (Documentation),但生成的令牌仍将在 60 分钟后过期。

重现步骤 -

  1. git 克隆 https://github.com/ory/hydra.git
  2. cd 到 hydra 目录
    docker-compose -f quickstart.yml \
                   -f quickstart-jwt.yml \
                   up --build
    docker-compose -f quickstart.yml exec hydra \
                           hydra clients create \
                           --endpoint http://127.0.0.1:4445/ \
                           --id my-client \
                           --secret secret \
                           -g client_credentials
    curl -s -k -X POST \
       -H "Content-Type: application/x-www-form-urlencoded" \
       -d grant_type=client_credentials \
       -u 'my-client:secret' \
       http://localhost:4444/oauth2/token

在最后一部分我们得到了access_token。 回应-

{  "access_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6InB1YmxpYzpmMGZiNWQ5MC0wZGEwLTQ5ZDMtYTgzYS1jYmE0YWIzOWNkNjcifQ.eyJhdWQiOltdLCJjbGllbnRfaWQiOiJteS1jbGllbnQiLCJleHAiOjE2NDM0MDA0MDUsImV4dCI6e30sImlhdCI6MTY0MzM5NjgwNSwiaXNzIjoiaHR0cDovLzEyNy4wLjAuMTo0NDQ0LyIsImp0aSI6IjIwODE3OGE2LWI2OTYtNDVhMy05Mjg5LWVjODA0ZTAzMzNkNSIsIm5iZiI6MTY0MzM5NjgwNSwic2NwIjpbXSwic3ViIjoibXktY2xpZW50In0.RwHKP5mdwBIKO5qnYExXEDKjn4P7G6QuQw4YcR3HYdtG5DYh87EEixPXekAcSjB7y1wqHoMJ4NDtIr6AVu66JU9RXOI0vZT66uXIGauRPQdAt-BAYy0J4oalBzX-TWIbXP-rojVFuiKsroS7ugGm1dC-kHuo0Sqv_h1rTX4rQxQVhqLh-vvYWssDBHNFHHbS1i2lK2Dw8GUeAqM4ZUJLDb1Wytro4ke45y6FnkJuYO3IZpmHg0iq7tj161I5hM0fAdFJGpoqP9VI5DwiuRICr9mbEnnxb6yqLaSrZU0bqq-zHNpw1JW3oTCqHcC_NznAQ1M2UCLpIQ6EH0FIQ3kq42HyD08qPAEYYUAmGcuVcqdv2W9adgESiqGYmfvIaD_x_9CI-ZtFv64liH15-o-1SW_8WVuuIluaoXAd-sJK1tgH5R-ezW-9ZLgRztF1F3e9czu0BYMAVg2coUea0rc6wcgSpEXyWE1NMNlafjQZVfcrhXyk6wKiL3aQWUoDrCUY2xhjsZKIo4wfRpB58STSGxe_TpCZoVOfrz_XhVpD7f-H2z9IaDMQTAWOOJbOousb2b8cCwE0R0jCeamuCe1N3mHE9dlqL5yVpY0EQeWmaEB1y9b6oUjszxvZ6DdEzrKTE9SKyROokJr-ximKVRHt8THD7a1jJAuer7S1sBdavKQ",
   "expires_in":3599,
   "scope":"",
   "token_type":"bearer"
}

请告诉我如何增加此令牌到期时间 (expires_in)。

在 services.hydra.environment 下的 quickstart-jwt.yml 中将环境变量 TTL_ACCESS_TOKEN 添加到所需的增加值并在第 3 步之前保存文件(即在启动 hydra 服务器之前)。

参考:https://www.ory.sh/hydra/docs/guides/token-expiration/#access-token-expiration