vue

 

 

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
 

 

 

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

가장 잘 통치할 수 있는 사람이 통치해야 한다. -아리스토텔레스

댓글 ( 4)

댓글 남기기

작성