mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
feat: add password login
This commit is contained in:
1 parent
a5dbcd7db4
commit
bcdd04715d
8 files changed
+390
-12
No files matched your search
@@ -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(
|
||||
|
||||
Reference in new issue
Block a user