Merged in development (pull request #9)

feat: adiciona flag disableAuthContentType
This commit is contained in:
Leandro Costa 2023-06-17 00:57:37 +00:00
commit ab0afdb8e6
5 changed files with 26 additions and 8 deletions

View file

@ -105,6 +105,24 @@ describe("Get Access Token", () => {
})
);
});
it("Shoud Get with Credentials without ContentType", async () => {
const cli = getOauthClient({
...baseClientParams,
disableAuthContentType: true,
});
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(
expect.objectContaining({
url: authUrl,
method: "POST",
headers: {
Authorization: basicAuth,
},
data: `grant_type=${defaultGrantValue}`,
})
);
});
});
describe("Request", () => {

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "lhisp-oauth-client",
"version": "1.0.13",
"version": "1.0.14",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "lhisp-oauth-client",
"version": "1.0.13",
"version": "1.0.14",
"license": "MIT",
"dependencies": {
"axios": "^1.4.0",

View file

@ -1,6 +1,6 @@
{
"name": "lhisp-oauth-client",
"version": "1.0.13",
"version": "1.0.14",
"main": "src/index",
"types": "src/index.d.ts",
"repository": "git@bitbucket.org:leandro_costa/lhisp-oauth-client.git",

View file

@ -18,6 +18,7 @@ export interface LhispOauthClientConstructorParams {
grantType?: string;
authContentType?: ContentType;
sendAuthCredentialsOnRequestBody?: boolean;
disableAuthContentType?: boolean;
debug?: boolean;
}

View file

@ -21,6 +21,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
protected authHeaderName: string;
protected tokenHeaderName: string;
protected authContentType: ContentType;
protected disableAuthContentType = false;
protected certificado?: string;
protected senhaCertificado?: string;
protected authScope?: string;
@ -53,6 +54,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
this.authScope = params.authScope;
this.grantType = params.grantType || defaultGrantType;
this.authContentType = params.authContentType || defaultAuthContentType;
this.disableAuthContentType = Boolean(params.disableAuthContentType);
this.clientId = params.clientId;
this.clientSecret = params.clientSecret;
this.authHeaderName = params.authHeaderName || defaultAuthHeaderName;
@ -98,7 +100,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
httpsAgent: this.agent,
headers: {
[this.authHeaderName]: this.getAuthHeaderValue(),
"Content-Type": this.authContentType,
...(this.disableAuthContentType ? {} : { "Content-Type": this.authContentType }),
},
data: {},
};
@ -111,10 +113,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
if (this.clientSecret) authRequestOpt.data.client_secret = this.clientSecret;
}
authRequestOpt.data = this.parseData({
data: authRequestOpt.data,
contentType: this.authContentType,
});
authRequestOpt.data = this.parseData({ data: authRequestOpt.data, contentType: this.authContentType });
const resp = await axios.request(authRequestOpt);
this.accessToken = this.buildAccessToken(resp.data);
this.tokenCreatedAt = new Date().getTime();