11. Node 가계부 만들기 [ 로그인 route 코드 작성 ] - 3
2022. 5. 28. 19:57ㆍ프로젝트/가계부 - 제작 JavaScript
passport 전략생성 : https://crispypotato.tistory.com/219
10. Node 가계부 만들기 [ 로그인 passport 전략 설정 ] - 2
passport를 이용 하여 로그인 기능, jwt 검증을 만든다. passport.js파일에 passport-local, passport-jwt 전략 생성 1. passport-local 전략 생성 usernameField : 받는 아이디 파라미터 이름 passwordField : 받..
crispypotato.tistory.com
1. login.service.js 코드 작성 (기본 연결을 위해 작성 실제 코드는 [ ] )
const httpError = require('http-errors')
const { Send } = require('../../lib/lib')
const jwt = require('jsonwebtoken')
const JWT = process.env.JWT
const Login = async (req, res, next) => {
}
const LoginFail = async (req, res, next) => {
}
const TokenFail = async (req, res, next) => {
}
module.exports = { Login, LoginFail, TokenFail }
2. login.route.js 코드 작성 [ service 기본 연결 ]
passport.js에서 만든 LocalPassport 전략 적용
failureRedirect : 로그인에 실패 시 redirect하는 url
session : 세션 사용 여부
//login.route.js
const express = require('express')
const router = express.Router()
const { LocalPassport } = require('./passport')
const { Login, LoginFail } = require('./login.service')
router.post(
'/',
LocalPassport.authenticate('local', {
failureRedirect: '/login/fail',
session: false
}),
Login
)
module.exports = router
3. app.js에 login.route.js 연결
app.js
require('dotenv').config()
const express = require('express')
const logger = require('morgan')
const compression = require('compression')
const httpError = require('http-errors')
const { Error } = require('./lib/lib')
const { sequelize } = require('./models/index')
const loginRouter = require('./routes/login/login.route')
const userRouter = require('./routes/users/users.route')
if (process.env.NODE_ENV === 'local') {
sequelize
.sync()
.then(() => {
console.log('성공')
})
.catch((err) => {
console.log('실패')
console.log(err)
})
}
const app = express()
app.use(compression())
app.use(logger('dev'))
app.use(express.json())
app.use('/user', userRouter)
app.use('/login', loginRouter)
app.use(() => {
throw httpError(404)
})
app.use(Error)
app.listen(3000, () => {
console.log('server start!')
})
4. Error redirect 설정
/fail : 로그인 실패시 redirect 경로
/token-fail : 토큰 에러 발생시 redirect 경로
//login.route.js
const express = require('express')
const router = express.Router()
const { LocalPassport } = require('./passport')
const { Login, LoginFail, TokenFail } = require('./login.service')
router.post(
'/',
LocalPassport.authenticate('local', {
failureRedirect: '/login/fail',
session: false
}),
Login
)
router.get('/fail', LoginFail)
router.get('/token-fail', TokenFail)
module.exports = router
728x90
반응형
'프로젝트 > 가계부 - 제작 JavaScript' 카테고리의 다른 글
13. Node 가계부 만들기 [ 로그인 유효성 검사 ] - 5 (0) | 2022.05.28 |
---|---|
12. Node 가계부 만들기 [ 로그인 Service 코드 작성 ] - 4 (0) | 2022.05.28 |
10. Node 가계부 만들기 [ 로그인 passport 전략 생성 ] - 2 (0) | 2022.05.28 |
9. Node 가계부 만들기 [ 로그인 기능 구현 파일 생성 ] - 1 (0) | 2022.05.28 |
8. Node 가계부 만들기 [ 유저 기능 (회원 가입) 전송 받은 데이터 유효성 검사 ] - 5 (0) | 2022.05.28 |