IS4 - Better way to access user token in an API authenticated with Implicit flow?

Right now I have two APIs (Lets say API1 and API2). I have Swagger hooked up to API1, and can authenticate just fine.

I just added an extension grant to be able to allow API1 to easily communicate with API2. That works just fine as well.

However, the extension grant, and subsequently the custom grant call requires access to the current user token. The only easy way I have seen that done, is with an MVC app, where the tokens get saved as part of a cookie.

With the swagger client (implicit flow), there is no cookie that I can pull that from. So right now I am just pulling it from the request header. Which seems janky.

Current Way

public async Task<string> API1Action(HttpContext httpContext)
    {
        // THIS IS JANKY
        var token = string.Empty;

        if (httpContext.Request.Headers.TryGetValue("Authorization", out var authValue))
        {
            token = authValue[0].Replace("Bearer ", "");
        }

        // create token client
        var client = new TokenClient("https://localhost:6900/connect/token", "API1", "secret");

        // send custom grant to token endpoint, return response
        var tokenResponse = await client.RequestCustomGrantAsync("delegation", "API2", new { token });

        var getClaimsUrl = new Uri($"api/v1/controller/API2Action", UriKind.Relative);

        var message = new HttpRequestMessage(HttpMethod.Get, getClaimsUrl);
            Client.SetBearerToken(tokenResponse.AccessToken);

        var res = await Client.GetAsync(getClaimsUrl);

        return await res.Content.ReadAsStringAsync();
    }

Is there a better way of extracting out the token, so i can pass it along the custom grant request?