# leadin/11.3.61/public/modules/api/class-refresh-token-api-controller.php

HubSpot All-In-One Marketing – Forms, Popups, Live Chat, version 11.3.61. 46 lines.

- Page: https://pluginprobe.com/plugins/leadin/11.3.61/code/public/modules/api/class-refresh-token-api-controller.php
- Raw: https://pluginprobe.com/plugins/leadin/11.3.61/raw/public/modules/api/class-refresh-token-api-controller.php
- Modified: 2026-07-08T14:59:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/leadin/11.3.61/code/public/modules/api/class-refresh-token-api-controller.php#L10-L20`.

```php
<?php

namespace Leadin\api;

use Leadin\api\Base_Api_Controller;
use Leadin\auth\OAuth;
use Leadin\auth\OAuthCryptoError;

/**
 * REST endpoint to retrieve the OAuth refresh token for authenticated users.
 */
class Refresh_Token_Api_Controller extends Base_Api_Controller {

	/**
	 * Class constructor, register route.
	 */
	public function __construct() {
		self::register_leadin_route(
			'/refresh-token',
			\WP_REST_Server::READABLE,
			array( $this, 'get_refresh_token' )
		);
	}

	/**
	 * Callback for refresh token endpoint.
	 * leadin/v1/refresh-token Method:GET.
	 *
	 * @return WP_REST_Response The refresh token or an error response.
	 */
	public function get_refresh_token() {
		$refresh_token = OAuth::get_refresh_token();

		if ( false === $refresh_token ) {
			return new \WP_REST_Response( array( 'error' => OAuthCryptoError::DECRYPT_FAILED ), 500 );
		}

		if ( empty( $refresh_token ) ) {
			return new \WP_REST_Response( array( 'error' => 'not_connected' ), 403 );
		}

		return new \WP_REST_Response( array( 'refreshToken' => $refresh_token ), 200 );
	}

}

```
