@ariusii/intersect.ts
Version:
The Intersect Engine API Client Library based on TS.
67 lines • 2.49 kB
JavaScript
/**
* This is the Authentification Class, it contains all the methods to handle the authentification and token.
* Those actions do not require any Query Role.
* @class Authentification
* @link https://docs.freemmorpgmaker.com/en-US/api/v1/endpoints/authentication.html
* @author AriusII
*/
export class Authentification {
_url;
_token;
_refreshToken;
constructor(url, token, refreshToken) {
this._url = url;
this._token = token;
this._refreshToken = refreshToken;
}
/**
* /!\ CAUTION /!\ This method can delete your CURRENT TOKEN KEY, so be careful, or you will not be able to use the API anymore.
* It takes a url and a token, and returns a fetch request to the url with the token in the body.
* @returns The response from the server.
*/
async refreshToken() {
const res = await fetch(`${this._url}/api/oauth/token`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${this._token}`
},
body: JSON.stringify({
grant_type: 'refresh_token',
refresh_token: this._refreshToken
})
});
return await res.json();
}
/**
* It deletes a token from a specific user.
* @param {string} user - The user you want to delete the token for.
* @returns The response from the server.
*/
async deleteToken(user) {
const res = await fetch(`${this._url}/api/oauth/token/${user}`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${this._token}`
}
});
return await res.json();
}
/**
* It deletes the token information from the specified token id, from a specific user.
* @param {string} user - The user you want to delete the token for.
* @returns The response from the server.
*/
async deleteTokenById(user) {
const res = await fetch(`${this._url}/api/oauth/token/${user}/${this._refreshToken}`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${this._token}`
}
});
return await res.json();
}
}
//# sourceMappingURL=authentification.js.map