Do not return any keys in API
This commit is contained in:
parent
de5e1a9e8f
commit
7bfacf08d0
2 changed files with 11 additions and 2 deletions
|
@ -13,7 +13,7 @@ export function createSession(req, res, next) {
|
|||
email: req.user.email,
|
||||
username: req.user.username,
|
||||
preferences: req.user.preferences,
|
||||
apiKeys: req.user.apiKeys,
|
||||
apiKeys: req.user.publicApiKeys,
|
||||
verified: req.user.verified,
|
||||
id: req.user._id
|
||||
});
|
||||
|
@ -27,7 +27,7 @@ export function getSession(req, res) {
|
|||
email: req.user.email,
|
||||
username: req.user.username,
|
||||
preferences: req.user.preferences,
|
||||
apiKeys: req.user.apiKeys,
|
||||
apiKeys: req.user.publicApiKeys,
|
||||
verified: req.user.verified,
|
||||
id: req.user._id
|
||||
});
|
||||
|
|
|
@ -16,6 +16,10 @@ const apiKeySchema = new Schema({
|
|||
hashedKey: { type: String, required: true },
|
||||
}, { timestamps: true, _id: true });
|
||||
|
||||
apiKeySchema.virtual('publicFields').get(function publicFields() {
|
||||
return { id: this.id, label: this.label, lastUsedAt: this.lastUsedAt };
|
||||
});
|
||||
|
||||
apiKeySchema.virtual('id').get(function getApiKeyId() {
|
||||
return this._id.toHexString();
|
||||
});
|
||||
|
@ -95,6 +99,11 @@ userSchema.virtual('id').get(function idToString() {
|
|||
return this._id.toHexString();
|
||||
});
|
||||
|
||||
userSchema.virtual('publicApiKeys').get(function publicApiKeys() {
|
||||
return this.apiKeys.map(apiKey => apiKey.publicFields);
|
||||
});
|
||||
|
||||
|
||||
userSchema.set('toJSON', {
|
||||
virtuals: true
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue