UNPKG

675 BJavaScriptView Raw
1"use strict"
2const {hash, compare} = require("./bcrypt-setup")
3
4module.exports = function addBcryptCheck(model) {
5 model.tokens = {}
6 model.beforeSave(async (self) => {
7 if(self.token) {
8 self.encryptedToken = await hash(self.token)
9 }
10 })
11 model.prototype.isValidToken = async function(token) {
12 if(model.tokens[this.encryptedToken] == token) return true
13 let res = await compare(token, this.encryptedToken, (newEncryptedToken) => {
14 this.encryptedToken = newEncryptedToken
15 this.save()
16 })
17 if(res) {
18 model.tokens[this.encryptedToken] = token
19 } else {
20 delete model.tokens[this.encryptedToken]
21 }
22 return res
23 }
24}