是的,您可以自定義 PHP AccessToken 的有效期。在 OAuth2 服務器中,通常可以設置訪問令牌的有效期。以下是一個使用 PHP 和 OAuth2 服務器的示例,展示如何自定義訪問令牌的有效期:
首先,確保您已經安裝并配置了 OAuth2 服務器庫。在這個例子中,我們將使用 thephpleague/oauth2-server
庫。要安裝這個庫,您可以使用 Composer:
composer require thephpleague/oauth2-server
接下來,創建一個自定義的訪問令牌有效期。在這個例子中,我們將設置訪問令牌的有效期為 1 小時:
<?php
require 'vendor/autoload.php';
use League\OAuth2\Server\AuthorizationServer;
use League\OAuth2\Server\Request;
use League\OAuth2\Server\Response;
use League\OAuth2\Server\TokenResponse;
$server = new AuthorizationServer([
'access_token_lifetime' => 3600, // 設置訪問令牌有效期為 1 小時(3600 秒)
'refresh_token_lifetime' => 2592000, // 設置刷新令牌有效期為 30 天(2592000 秒)
'support_implicit_grant' => false,
'token_type' => 'Bearer',
]);
$request = Request::createFromGlobals();
$response = new Response();
try {
$tokenResponse = $server->handleTokenRequest($request, $response);
if ($tokenResponse->getStatusCode() === Response::HTTP_OK) {
echo $tokenResponse->getBody();
} else {
echo $response->getBody();
}
} catch (Exception $e) {
echo $response->getBody();
}
在這個例子中,我們設置了 access_token_lifetime
為 3600 秒(1 小時),這將使得訪問令牌在 1 小時后過期。您可以根據需要調整這個值來設置不同的有效期。
請注意,這個示例僅用于演示目的。在實際應用中,您需要根據您的需求和 OAuth2 服務器的實現來調整代碼。