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)
댓글 남기기