change to use session for auth

+ replace BearerAuth to cookieAuth in swagger
+ add swagger.yaml to nodemon watch list
This commit is contained in:
wancat committed 2023-09-17 11:27:37 +08:00
1 parent a6d02f2616
commit be5cd152a9
13 files changed
+216 -71

No files matched your search

+22 -2
View File
@@ -92,8 +92,15 @@ export async function register(req, res, next) {
user.hashedPassword = await hashPassword(password)
await user.save()
req.user = user
res.status(201)
next()
req.login(user, (err) => {
if (err) {
next(err)
return
}
res.status(201).json({
message: 'user created',
})
})
} catch (err) {
console.error(err)
res.status(500).json({
@@ -101,3 +108,16 @@ export async function register(req, res, next) {
})
}
}
export function logout(req, res) {
req.logout((err) => {
if (err) {
console.error(err)
res.status(500).json({
message: 'error logging out',
})
return
}
res.json({ message: 'success' })
})
}
+8 -4
View File
@@ -2,20 +2,24 @@ import { Router } from 'express'
import passport from 'passport'
import {
issueToken,
register,
checkUsername,
logout,
} from '../controllers/authController.js'
const router = Router()
router.post(
'/login',
passport.authenticate('local', { session: false, failWithError: true }),
issueToken
passport.authenticate('local', { failureMessage: true }),
(req, res) => {
res.json({ message: 'success' })
}
)
router.post('/register', register, issueToken)
router.post('/register', register)
router.post('/logout', logout)
router.get('/check', checkUsername)
+7 -10
View File
@@ -6,6 +6,7 @@ import commands from './commands.js'
import authRouter from './auth.js'
const router = Router()
router.use(passport.authenticate('session'))
router.get('/', (req, res) => {
res.send('Hello API!')
@@ -13,15 +14,11 @@ router.get('/', (req, res) => {
router.use('/auth', authRouter)
router.use('/quests', quests)
router.use(
'/sessions',
passport.authenticate('jwt', { session: false, failWithError: true }),
sessions
)
router.use(
'/commands',
passport.authenticate('jwt', { session: false, failWithError: true }),
commands
)
const authZone = Router()
authZone.use('/sessions', sessions)
authZone.use('/commands', commands)
router.use(authZone)
export default router