token generation
This commit is contained in:
parent
1b103c41a0
commit
75eab36889
@ -26,7 +26,7 @@ class Users extends EventEmitter {
|
||||
const id = user.id || user;
|
||||
this.emit('debug', `User perms query for ${id}`);
|
||||
const userPartial = await this.database.findOne(this.collection, { id });
|
||||
user = { ...this.defaultPermissions, ...userPartial, ...user };
|
||||
user = { permissions: this.defaultPermissions, ...userPartial, ...user };
|
||||
user.tag = `${user.username}#${user.discriminator}`;
|
||||
this.emit('debug', `Result for ${id}: ${JSON.stringify(userPartial)}`);
|
||||
if (userPartial) return user;
|
||||
@ -38,6 +38,25 @@ class Users extends EventEmitter {
|
||||
|
||||
}
|
||||
|
||||
async generateToken(user, permissions=[]) {
|
||||
|
||||
const id = Buffer.from(user.id).toString('base64');
|
||||
const ts = Buffer.from(Date.now().toString()).toString('base64');
|
||||
const perm = Buffer.from(permissions.join('.')).toString('base64');
|
||||
const token = `${id}.${ts}.${perm}`;
|
||||
|
||||
user.token = token;
|
||||
await this.database.updateOne(this.collection, { id: user.id }, { token });
|
||||
return token;
|
||||
|
||||
}
|
||||
|
||||
checkToken(token) {
|
||||
|
||||
return this.database.findOne(this.collection, { token });
|
||||
|
||||
}
|
||||
|
||||
getAll() {
|
||||
|
||||
return this.database.find(this.collection, {});
|
||||
|
Loading…
Reference in New Issue
Block a user