Socket
Socket
Sign inDemoInstall

@auth0-kits/server

Package Overview
Dependencies
Maintainers
2
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@auth0-kits/server - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

2

package.json
{
"name": "@auth0-kits/server",
"version": "1.2.0",
"version": "1.3.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -6,6 +6,10 @@ const querystring = require('querystring');

const TOKEN_URL = '/oauth/token';
const MANAGEMENT_API_AUDIENCE = '/api/v2/';
const USER_URL = '/api/v2/users/';
const LINK_ACCOUNTS_URL = '/identities';
const CLIENT_URL = `${MANAGEMENT_API_AUDIENCE}/clients`;
const USER_URL = `${MANAGEMENT_API_AUDIENCE}/users`;
const USER_IDENTITIES_URL = '/identities';
const USER_ROLES_URL = '/roles';
class Auth0Service {

@@ -40,2 +44,4 @@ /**

this.cachedManagementApiToken = null;
this.tracer = tracer || new Tracer({ log, silent: !debug });

@@ -55,2 +61,7 @@ }

if (this.cachedManagementApiToken) {
this.tracer.crumb({ cached: this.cachedManagementApiToken });
return this.tracer.dump(this.cachedManagementApiToken);
}
const client_id = clientId || this.clientId;

@@ -220,2 +231,14 @@ const client_secret = clientSecret || this.clientSecret;

let managementToken;
try {
managementToken = await this.getManagementApiToken();
this.tracer.crumb({ managementToken });
if (!managementToken) {
throw new Error('Cannot get user info because managementToken is null.');
}
} catch (error) {
throw this.tracer.break(error);
}
const body = querystring.stringify({

@@ -228,3 +251,3 @@ link_with: secondaryToken,

try {
const url = `${this.auth0TenantUrl}${USER_URL}/${primaryAccountUserId}/${LINK_ACCOUNTS_URL}`;
const url = `${this.auth0TenantUrl}${USER_URL}/${primaryAccountUserId}/${USER_IDENTITIES_URL}`;
this.tracer.crumb({ url });

@@ -235,3 +258,6 @@

body,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Bearer ${managementToken}`,
},
});

@@ -248,4 +274,120 @@

}
async getClientMetadata() {
this.tracer.trace('linkAccounts');
let managementToken;
try {
managementToken = await this.getManagementApiToken();
this.tracer.crumb({ managementToken });
if (!managementToken) {
throw new Error('Cannot get user info because managementToken is null.');
}
} catch (error) {
throw this.tracer.break(error);
}
const clientUrl = `${this.auth0TenantUrl}${CLIENT_URL}/${this.clientId}`;
const requestUrl = `${clientUrl}?fields=client_metadata&include_fields=true`;
this.tracer.crumb({ clientUrl, requestUrl });
let response;
try {
response = await fetch(requestUrl, {
method: 'GET',
headers: { 'Authorization': `Bearer ${managementToken}` },
});
const { headers, status, statusText } = response;
this.tracer.crumb({ headers, status, statusText });
} catch (error) {
throw this.tracer.break(error);
}
const responseJson = await response.json();
this.tracer.crumb({ responseJson });
const metadata = responseJson.client_metadata || null;
return this.tracer.dump(metadata);
}
async assignUserRole(userId, ...rolesIds) {
this.tracer.trace('assignUserRole', { userId, rolesIds });
let managementToken;
try {
managementToken = await this.getManagementApiToken();
this.tracer.crumb({ managementToken });
if (!managementToken) {
throw new Error('Cannot get user info because managementToken is null.');
}
} catch (error) {
throw this.tracer.break(error);
}
const body = JSON.stringify({ roles: rolesIds });
this.tracer.crumb({ body });
let response;
try {
const url = `${this.auth0TenantUrl}${USER_URL}/${userId}/${USER_ROLES_URL}`;
this.tracer.crumb({ url });
response = await fetch(url, {
method: 'POST',
body,
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${managementToken}`,
},
});
const { headers, status, statusText } = response;
this.tracer.crumb({ headers, status, statusText });
} catch (error) {
throw this.tracer.break(error);
}
const success = response.status < 400;
return this.tracer.dump(success);
}
async deleteUser(userId) {
this.tracer.trace('deleteUser', { userId });
let managementToken;
try {
managementToken = await this.getManagementApiToken();
this.tracer.crumb({ managementToken });
if (!managementToken) {
throw new Error('Cannot get user info because managementToken is null.');
}
} catch (error) {
throw this.tracer.break(error);
}
let response;
try {
const url = `${this.auth0TenantUrl}${USER_URL}/${userId}`;
this.tracer.crumb({ url });
response = await fetch(url, {
method: 'DELETE',
headers: { 'Authorization': `Bearer ${managementToken}` },
});
const { headers, status, statusText } = response;
this.tracer.crumb({ headers, status, statusText });
} catch (error) {
throw this.tracer.break(error);
}
const success = response.status < 400;
return this.tracer.dump(success);
}
}
module.exports = Auth0Service;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc