api icon indicating copy to clipboard operation
api copied to clipboard

Authorization Headers are not supported

Open bennycode opened this issue 2 years ago • 6 comments

I am trying to use api to make request to Alpaca. The Readme.io demo page shows me that I can add Authorization Headers for the API Key & API Secret. When I follow the example, my code crashes with the following message:

Error: Sorry, this operation currently requires multiple forms of authentication which this library doesn't yet support.

Here is the example:

import api from 'api';
const sdk = api('@testalpacadocs/v1#zryj16ll4d1dl0');

sdk.auth(process.env.API_KEY);
sdk.auth(process.env.API_SECRET);

await sdk.postOrder({side: 'buy', type: 'market', time_in_force: 'day'});

Screenshot

image

bennycode avatar Aug 21 '23 10:08 bennycode

So yeah api does support authorization headers, but it doesn't support API endpoints that have multiple forms of auth because sdk.auth() has no way of knowing which security scheme, and authorization header, to apply that value to.

We've had some ideas on how to improve this, like adding a second argument to sdk.auth('API-KEY', 'x-api-key') to let you specify the header to attach it to but that conflicts with sdk.auth's handling of basic auth.

Will leave this open for discussion.

erunion avatar Aug 21 '23 16:08 erunion

Getting this integrated would be a big enabler. Is there any workaround for me as a developer to set headers on the SDK? Can I access some internal variables or apply an interceptor to add the necessary header information?

bennycode avatar Aug 21 '23 17:08 bennycode

There's unfortunately no workarounds at the moment.

erunion avatar Aug 21 '23 17:08 erunion

I use API that requires 2 secrets, so it's really a blocker in using this lib. At least workaround would be great 🙏

konhi avatar Jan 26 '24 10:01 konhi

Wow that's like the first thing I'd do when implementing such tool :)

@erunion is there anything we can do to help? Or is there a reason why it HAS to be like this?

fl0wo avatar Apr 16 '25 09:04 fl0wo

Hey, any futher discussion on this topic? Having some way to customize the auth would be super beneficial for more complex APIs

bombillazo avatar Aug 15 '25 07:08 bombillazo