feat: add password login

This commit is contained in:
wancat committed 2023-09-11 22:59:41 +08:00
1 parent a5dbcd7db4
commit bcdd04715d
8 files changed
+390 -12

No files matched your search

+30
View File
@@ -1,7 +1,20 @@
import jwt from 'jsonwebtoken'
import bcrypt from 'bcrypt'
import config from '../config.js'
import User from '../models/user.js'
export async function createTestUser() {
let user = await User.findOne({ username: 'testUser' })
if (!user) {
user = new User({
username: 'testUser',
email: 'test@example.com',
})
user.hashedPassword = await bcrypt.hash('testPassword', 10)
await user.save()
}
}
export async function defaultUser() {
let user = await User.findOne({ username: 'defaultUser' })
if (!user) {
@@ -14,6 +27,23 @@ export async function defaultUser() {
return user
}
export function genUserJWT(user) {
return new Promise((resolve, reject) => {
jwt.sign(
{ _id: user.id, username: user.username, email: user.email },
config.jwtSecret,
{ expiresIn: config.expiry },
(err, token) => {
if (err) {
reject(err)
} else {
resolve(token)
}
}
)
})
}
export function genSessionJWT(session) {
return new Promise((resolve, reject) => {
jwt.sign(