forked from espressif/arduino-esp32
Support additional authorization schemes (#5845)
The client always appends "Basic" to the authorization header, however there are other auth schemes that can be used: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication For example "Bearer" when using OAuth. This PR adds a `setAuthorizationType` method to the HTTPClient which allows this scheme to be configured by the caller. Authorization type is set to "Basic" by default so this will have no impact on existing usecases.
This commit is contained in:
@ -463,6 +463,17 @@ void HTTPClient::setAuthorization(const char * auth)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set the Authorization type for the http request
|
||||
* @param authType const char *
|
||||
*/
|
||||
void HTTPClient::setAuthorizationType(const char * authType)
|
||||
{
|
||||
if(authType) {
|
||||
_authorizationType = authType;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set the timeout (ms) for establishing a connection to the server
|
||||
* @param connectTimeout int32_t
|
||||
@ -1178,7 +1189,9 @@ bool HTTPClient::sendHeader(const char * type)
|
||||
|
||||
if(_base64Authorization.length()) {
|
||||
_base64Authorization.replace("\n", "");
|
||||
header += F("Authorization: Basic ");
|
||||
header += F("Authorization: ");
|
||||
header += _authorizationType;
|
||||
header += " ";
|
||||
header += _base64Authorization;
|
||||
header += "\r\n";
|
||||
}
|
||||
|
Reference in New Issue
Block a user