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", () => { describe("Request", () => {

4
package-lock.json generated
View file

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

View file

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

View file

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

View file

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