util/elasticsearch_token_api.php (21 lines of code) (raw):

<?php /** * Elastic Enterprise Search * * @link https://github.com/elastic/enterprise-search-php * @copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co) * @license https://opensource.org/licenses/MIT MIT License * * Licensed to Elasticsearch B.V under one or more agreements. * Elasticsearch B.V licenses this file to you under the MIT License. * See the LICENSE file in the project root for more information. */ declare(strict_types=1); require dirname(__DIR__) . '/vendor/autoload.php'; $user = getenv('APP_SEARCH_USER') ?: 'elastic'; $pass = getenv('APP_SEARCH_PASSWORD') ?: 'changeme'; $url = getenv('external_elasticsearch_url') ?: sprintf("https://%s:%s@instance:9200", $user, $pass); $client = new GuzzleHttp\Client(); $result = $client->request( 'POST', "$url/_security/oauth2/token", [ 'verify' => false, 'json' => [ 'grant_type' => 'password', 'username' => $user, 'password' => $pass ] ] ); $json = json_decode((string) $result->getBody()); echo $json->access_token;