From 4d28ac359b25d89d0dbb42dd3a6d32269eebc619 Mon Sep 17 00:00:00 2001 From: piotrruss Date: Tue, 15 Aug 2023 19:13:58 +0200 Subject: add cors, logout, change name --- model/User.js | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'model') diff --git a/model/User.js b/model/User.js index cbd1e60..ce34cbe 100644 --- a/model/User.js +++ b/model/User.js @@ -47,15 +47,11 @@ const userSchema = new mongoose.Schema({ userSchema.statics.checkRefreshToken = async (email, refresh) => { const user = await User.findOne({ email }) - if (!user) { - throw new Error('User not found') - } + if (!user) throw new Error('User not found') const isMatch = await bcrypt.compare(refresh, user.refresh) - if (!isMatch) { - throw new Error('Wrong refresh token') - } + if (!isMatch) throw new Error('Wrong refresh token') return user } @@ -63,31 +59,27 @@ userSchema.statics.checkRefreshToken = async (email, refresh) => { userSchema.statics.findByCredentials = async (email, password) => { const user = await User.findOne({ email }) - if (!user) { - throw new Error('Unable to login') - } + if (!user) throw new Error('Unable to login') const isMatch = await bcrypt.compare(password, user.password) - if (!isMatch) { - throw new Error('Unable to login') - } + if (!isMatch) throw new Error('Unable to login') return user } userSchema.statics.newRefreshToken = async (user) => { const newRefreshToken = randomBytes(32).toString('hex') + user.refresh = newRefreshToken + await user.save() - try { - await user.save() - return newRefreshToken - } catch(err) { - return '' - } + return newRefreshToken } +userSchema.statics.removeRefreshToken = async (email) => ( + await User.findOneAndUpdate({ email }, { refresh: '' }) +) userSchema.pre('save', async function(next){ const user = this -- cgit v1.2.3