vue 기반 token 인증 을 위 한 인 스 턴 스 코드
vue 기반 token 검증
앞부분(axios 설정 Authorization)
import axios from 'axios'
import store from '../store'
import router from '../router'
// axios
axios.defaults.timeout = 6000; //6000
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
// axios
const instance = axios.create();
instance.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
axios.interceptors.request.use = instance.interceptors.request.use;
//request
instance.interceptors.request.use(
config => {
// vuex token,
if(store.state.token){
config.headers.Authorization = `token ${store.state.token}`;
}
return config;
},
err => {
return Promise.reject(err);
}
);
//respone
instance.interceptors.response.use(
response => {
return response;
},
error => { // 2XX ,
if(error.response){
switch(error.response.status){
case 401:
store.dispatch('UserLogout'); // token ,
router.replace({ //
path: 'login',
query: { redirect: router.currentRoute.fullPath } // path ,
});
}
}
return Promise.reject(error.response);
}
);
export default instance;
그리고 경로 파일 에서
//
router.beforeEach((to, from, next) => {
// store token
let token = store.state.token;
// requiresAuth
if(to.meta.requiresAuth){
if(token){
next();
}else{
next({
path: '/login',
query: { redirect: to.fullPath } // path( ) ,
});
}
}else{
next();// token,
}
});
백 엔 드(node)에서 token 을 검증 해 야 할 경로 에 중간 부품 을 봉 인 했 습 니 다.
router.get('/dosh',checkToken,User.dosh)
const jwt = require('jsonwebtoken');
1.jsonwebtoken 으로 token 만 들 기
const jwt = require('jsonwebtoken');
// : , id( user_id) JWT Payload
module.exports = function(user_id){
const token = jwt.sign({
user_id: user_id
}, 'sinner77', {
expiresIn: '3600s' // 60 。 decode token : token +
});
return token;
};
2.전단 요청,인터페이스 검사
// token
module.exports = async ( ctx, next ) => {
if(ctx.request.header['authorization']){
let token = ctx.request.header['authorization'].split(' ')[1];
// token
let decoded = jwt.decode(token, 'sinner77');
//console.log(decoded); :{ user_id: '123123123', iat: 1494405235, exp: 1494405235 }
if(token && decoded.exp <= new Date()/1000){
ctx.status = 401;
ctx.body = {
message: 'token '
};
}else{
// ,
return next();
}
}else{
ctx.status = 401;
ctx.body = {
message: ' token'
}
}
};
코드 관리 github 환영 starhttps://github.com/yxl720/vue-koa2-token
총결산
위 에서 말씀 드 린 것 은 vue 를 바탕 으로 token 인증 을 실현 하 는 인 스 턴 스 코드 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.