From 7b9d60b2b577e9cff644144bb36ed9326f4b784f Mon Sep 17 00:00:00 2001 From: Warren Parad Date: Wed, 28 Dec 2022 23:47:22 +0100 Subject: [PATCH] Commit enable passing the access token directly into the AuthressClient class. --- CHANGELOG.md | 1 + README.md | 6 +++--- examples/expressMicroservice/expressMicroservice.js | 2 +- index.d.ts | 5 ++--- index.js | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b5815a..337fb1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ This is the changelog for [Authress SDK](readme.md). * Add `Extensions` api * Upgraded node to 14 * Add support for users and groups at the statement level of access records. +* Enable passing just the access token as a string to `AuthressClient`. ## 1.2 ## * Removed legacy support for RS512 service client tokens. diff --git a/README.md b/README.md index fd26fa4..2a02c58 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ const { AuthressClient } = require('authress-sdk'); const { AuthressClient } = require('authress-sdk'); // What is my baseUrl? => API Host: https://authress.io/app/#/api?route=overview -const authressClient = new AuthressClient({ baseUrl: 'https://DOMAIN.api-REGION.authress.io' }) +const authressClient = new AuthressClient({ baseUrl: 'https://DOMAIN.api-REGION.authress.io' }); // on api route [route('/resources/')] @@ -52,7 +52,7 @@ async function getResource(resourceId) { #### Authorize with a service client ```js -const { AuthressClient, ServiceClientTokenProvider } = require('authress-sdk'); +const { AuthressClient } = require('authress-sdk'); // create an instance of the API class during service initialization // Replace DOMAIN with the Authress domain for your account @@ -60,7 +60,7 @@ const { AuthressClient, ServiceClientTokenProvider } = require('authress-sdk'); // Create a service client in the Authress management portal and past the access token here // This will generate a token automatically instead of passing the user token to the api const accessToken = 'eyJrZXlJ....'; -const authressClient = new AuthressClient({ baseUrl: 'https://DOMAIN.api-REGION.authress.io' }, new ServiceClientTokenProvider(accessToken)); +const authressClient = new AuthressClient({ baseUrl: 'https://DOMAIN.api-REGION.authress.io' }, accessToken); // on api route [route('/resources/')] diff --git a/examples/expressMicroservice/expressMicroservice.js b/examples/expressMicroservice/expressMicroservice.js index 9dea54f..c0df68e 100644 --- a/examples/expressMicroservice/expressMicroservice.js +++ b/examples/expressMicroservice/expressMicroservice.js @@ -48,7 +48,7 @@ const { AuthressClient, ServiceClientTokenProvider, UnauthorizedError } = requir // Some requests to authress request service client access and cannot use the user's JWT // IMPORTANT: These should be replace with account specific values -const serviceClientAccessKey = 'eyJrZXlJZCI6IjRkZmM0MDJiLTZmOGUtNGZhNy1iYzM3LWZhMzFlMTVhNmRkYyIsInByaXZhdGVLZXkiOiItLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS1cbk1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRQ3IzcUkzSnBQN2tGRHZcbjFnVUl0c2x3V21EV01UbGk3VlRJZEJWNEN2VFpxZHNPNnNWMDFFc1RoOEJBM25QUjJZaUF2UEFuTTlnUTh4bUNcbjZpMzc4eHJUd2RrcS8rU0o5c3ByVkZVeVZxQ0JqKzRSUG1yNllpREgrMFV5Nm10eEI2MzcyaE13Vis0cDAxbDdcbjZSZnRDdWIrVmFOTUxGVTFObWhZRjZFUDNLN1IveklxbHNTemxTWUcwRWprd1ltZjY5RVN0Y2VUcXVkS2tnbGhcbkR3TG5QOGwvWFlCbnV4RDVDQkpXU0tBM0pKaEs0MDhyb2w0U2JpQjZPWFI1Z05ZbCtHakp6ZUt6dkVSUkN6anNcbjE0aUk0NXR0Ty9TaVF1NVJKbThrTDY1ZGc3dUp2dEYrejhZemZpaEtsaGdNSHkwTFVRTXNYZ3ZzVmN1QjhMYUdcbm11bDlZZU9KQWdNQkFBRUNnZ0VBSHc3ZFc0QUNMK3lWWTdIV09Rdm0vUUdvREN6YkJQQ0VhTERwakViV2xscm1cbmRoeWcwQXJwQWo5KzAzb2ZqZVYwa0djVU10RmdremVLL2FoWjVQUzZmVmZEYWN6U1BNZzNMZ3dRVlVkb08rR0pcbmtONHBzTk40dndxK0o0UkxKQ0xTSXZmMmpiN21EL0xjY2RMZWV2eUVYNk9VSGRqSkVST2k2WUJqbjUwdWprMzJcbmx3MEtHOTl2WnRWWmRPY3l6QTYrZG5xMUxWcEtXTEtNeG1uSWVwd2psN3BhbDIzNUI1MnE2dUZQUGZsN1FHS2NcbkN5bEZ3Q1JDZmM2VGV3anRpcVc3SzZkd1ZKSFkwcWFGcDdzZytkbXlGRlRXWmZuaTFkS1UyaTdhdng4a09BTjNcbk00N2szdDZySkJWQ2NHbnNrQzJ5eVpHVHhNNlVKY3lxZVd3Z3QwUUJBUUtCZ1FEY3VLVWFRRnR0Y1FCb05aQ1RcbkowUDVVQjhweGNtVFVwOTZGdTVjd0VPc0xtU2tLTkR3OXN0bWc2Q2N3R3Y1cDMwMjM2S0w4VGNkZmlMZFJwdlZcbjNsSjBCbzE4dWFoUnNlM2ZBM05yNGxWZ0RBakZLQkxuenZHK2FKUWJjdFJCdE5HZk9aOGEyN3grQ254L2JNaEpcbkF0VlgwRFBEcER2K2YvaGNLeFFSeU9VUDRRS0JnUURIVnhyUnl4cmViZVJ6TVcrYzQzTUYrSGxFNVUxT29TNjZcbmxtWWFvaGpXaHJ1TXo2VGc2NHZ0RWZjUHBpeXhpSjZSa1lLT29wdmhhZFQ2dWxxbE10ais2Zmw1NHBsVkhaVlFcbmNEY3pMTklRbjFPWUNlSzFZN2ZTS0EvdlpDQ2JnWi92aE9RTmE1d3VzcWdxUEY5emhOWEpyb1BKbWt5cUlmZFBcbk9TcG9zcGRvcVFLQmdEMzRHV0tsYndYckZCSXQ5OGxZM056Q2dmMVlhcC9TTXJRMGUvZk9nekYwVlExQjZHZStcbjRweUZtREpxVStaai8rUElKZnJrWG5VSlZRQ0xNblY1VmV6OWFmdjZwQ2RMclYxUHVyZ3ZjNGpqMkJLQ2pjeEhcbmJkZm54SzF3TCtmQ3ZKZlh0YlAwdlpjbG1vNnNIQTlqbkVKclVoMDdueHgxRVdYUE1uTkwxQVFCQW9HQVRWY0RcblJkQktiWEF2aVczdHd1NFFTNG02NnpzWUFtRFE4MzIwd2JLUWRuTXh3eEV4QkQ3L1BBeVRVWlFFbFNEUGZPVDZcbnhZSmJmbHFFVW44SStqMC9LYS8zcGcxL3RpRlROREZGaVdwaldpV20xajlIb1Y2K0RDQ1ZCaWxQNldXaWV0aVJcbmJvK0l1aW1BeTFvL0lsK3dYcDZCN1M4YmZZck9IQU91NjQ0VzVua0NnWUJ2WkdJTGRhQWkzYXRoenR0TVJaeFdcbm1oaXYyeXRRU2NIWTlMcVJCMGRYazZOUTkrMEU1MjdraG14Y3dCT1E2UDhrM0RnLyttQTlHWDFyOG15Z3JRTlZcbk9Gb2N2YW90Q2ZyZmdmZTZtRlI1Wm1PM3VRajZIWG42ZGJ3d2srcFEyVTYzMTA4eFRJb0hLd2prQ2xpdWFkTW5cbnFhN2dPUHFZMVA0RHZ2Y2NMSkswQ0E9PVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwiYXVkaWVuY2UiOiIxMWZmZTk4ZC0xN2ZiLTRlYzktYTVhMi0xYmEyOGZmMmZlMmMuYWNjb3VudHMuYXV0aHJlc3MuaW8iLCJjbGllbnRJZCI6ImU5YWEwMGE4LWE4MzUtNGY4Zi04MzI1LWNiYmEyODUyOGUyMCJ9'; +const serviceClientAccessKey = 'eyJrZXlJZCI6IjRkZmM0MDJiLTZmOGUtNGZhNy1iYzM3LWZhMzFlMTVhNmRkYyIsInByaXZhdGVLZXkiOiItLS0tLUJFR0lOIFBSSVZBVE'; const authressDomain = 'https://DOMAIN.api-REGION.authress.io'; const authressServiceClient = new AuthressClient({ baseUrl: authressDomain }, new ServiceClientTokenProvider(serviceClientAccessKey)); diff --git a/index.d.ts b/index.d.ts index 049c0de..1814aba 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1271,10 +1271,9 @@ export class AuthressClient { * @constructor * @summary Creates an instance of the Authress client. * @param {AuthressSettings} settings The authress settings - * @param {Function} [tokenProvider] An optional {@link ServiceClientTokenProvider} which is used to generate an Authress client with the service clients permissions. + * @param {Promise> | Function | string} [tokenProvider] An optional {@link ServiceClientTokenProvider} which is used to generate an Authress client with the service clients permissions. */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - constructor(settings: AuthressSettings, tokenProvider: () => string | ServiceClientTokenProvider); + constructor(settings: AuthressSettings, tokenProvider: (() => Promise) | (() => string) | ServiceClientTokenProvider | string); /** * @summary The AccessRecords api diff --git a/index.js b/index.js index 6c0c37c..2ab9a0d 100644 --- a/index.js +++ b/index.js @@ -9,11 +9,12 @@ const RolesApi = require('./src/rolesApi'); const ConnectionsApi = require('./src/connectionsApi'); const ExtensionsApi = require('./src/extensionsApi'); const TenantsApi = require('./src/tenantsApi'); +const ServiceClientTokenProvider = require('./src/serviceClientTokenProvider'); class AuthressClient { constructor(settings, tokenProvider) { this.settings = settings || {}; - this.tokenProvider = tokenProvider; + this.tokenProvider = (tokenProvider && typeof tokenProvider === 'string') ? new ServiceClientTokenProvider(tokenProvider) : tokenProvider; this.httpClient = new httpClient(this.settings.baseUrl, this.tokenProvider); this.accessRecords = new AccessRecordsApi(this.httpClient); @@ -33,7 +34,6 @@ class AuthressClient { } } -const ServiceClientTokenProvider = require('./src/serviceClientTokenProvider'); const TokenVerifier = require('./src/tokenVerifier'); const UnauthorizedError = require('./src/unauthorizedError'); module.exports = { AuthressClient, ServiceClientTokenProvider, UnauthorizedError, TokenVerifier };