@m-ld/gateway
Version:
m-ld gateway for services
33 lines • 2.56 kB
JavaScript
/**
* An authorisation key with app, keyid and secret components
*/
export class AuthKey {
static fromString(keyStr) {
const [keyName, secret] = keyStr.split(':');
const [appId, keyid] = keyName.split('.');
const authKey = new AuthKey({ appId, keyid, secret });
if (authKey.toString() !== keyStr)
throw new RangeError(`${keyStr} is not a valid authorisation key`);
return authKey;
}
constructor({ appId, keyid, secret }) {
/** Application ID: for multi-app gateways, not used in timeld */
this.appId = appId;
/** Key ID: scoped to app */
this.keyid = keyid;
/** Secret material */
this.secret = secret;
}
toString() {
return `${this.appId}.${this.keyid}:${this.secret}`;
}
toConfig() {
return { auth: { key: this.toString() } };
}
matches(that) {
return this.appId === that.appId &&
this.keyid === that.keyid &&
this.secret === that.secret;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQXV0aEtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQUNsQixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWM7UUFDOUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNO1lBQy9CLE1BQU0sSUFBSSxVQUFVLENBQUMsR0FBRyxNQUFNLG1DQUFtQyxDQUFDLENBQUM7UUFDckUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQU1ELFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBb0Q7UUFDcEYsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLO1lBQzlCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUs7WUFDekIsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7Q0FDRiJ9