AXIOS
https://axios-http.com/kr/docs/interceptors
프론트 엔드 처리
plugin/axios.js
import Vue from 'vue'
import axios from 'axios'
const firebaseAPI = axios.create({
baseURL: 'http://localhost:3000/',
timeout: 5000,
headers: { 'X-Custom-Header': 'foobar' }
});
// 요청 인터셉터 추가하기
firebaseAPI.interceptors.request.use(function (config) {
// 요청이 전달되기 전에 작업 수행
//헤더만 가로채서 인증 토큰만 변경후 서버로 보낸다.
config.headers.authorization = Math.random();
return config;
}, function (error) {
// 요청 오류가 있는 작업 수행
return Promise.reject(error);
});
Vue.prototype.$axios = firebaseAPI
벡엔드 Nodejs 처리
middlewares/verifyToken.js
module.exports=(req, res, next) => {
//console.log(JSON.stringify(req.headers))
console.log(req.headers);
console.log("인증 처리hear");
next();
};
routes/test.js
const express = require('express');
require('express-async-errors');
const app = express();
const cors = require('cors');
app.use(cors());
//인증 처리 미들웨어
app.use(require('../middlewares/verifyToken'));
//const router = express.Router();
/* GET users listing. */
//router.get('/', function (req, res, next) {
//res.send('respond with a resource test');
//res.render("test", { student_id: 'tes1t' });
//});
app.post('/', async (req, res, next) => {
res.send("post ok : ");
});
app.get('/', (req, res, next) => {
res.send("get ok : " + req.params.id);
});
app.get('/:id', (req, res, next) => {
res.send("get ok - " + req.params.id);
});
app.put('/:id', (req, res, next) => {
res.send("put ok - " + req.params.id);
});
app.delete('/:id', (req, res, next) => {
res.send("delete ok - " + req.params.id);
});
//에러 처리 미들웨어
app.use(require('../middlewares/error'));
module.exports = app;
소스:
https://github.com/braverokmc79/vf/commit/9038cb00a35b7e1938b13d086eeb8721c2330cb3















댓글 ( 4)
댓글 남기기