Vue axios請求頭設(shè)置參數(shù)token驗(yàn)證權(quán)限

1 前端代碼??

axios.defaults.baseURL ='http://192.168.1.147:8090'

axios.defaults.timeout =6000

axios.interceptors.request.use(

config => {

// config.headers['Content-Type'] = 'application/x-www-form-urlencoded';

? ? ? ? let token =localStorage.getItem('token')

if (token) {

config.headers.common['token'] =localStorage.getItem('token');

}

return config

},

err => {

return Promise.reject(err);

}

)

2 登錄的時候把Token 寫入本地存儲

localStorage.setItem('token',this.encryptionDesc)

3 后端請求設(shè)置跨域

一 設(shè)置攔截規(guī)則

package com.real2tech.virtualTeach.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration

public class WebAppConfigurerextends WebMvcConfigurationSupport {

// addPathPatterns 用于添加攔截規(guī)則

? ? // excludePathPatterns 用戶排除攔截

? ? @Bean

? ? public HandlerInterceptor getMyInterceptor(){

return new FilterIPActionInterceptor();

}

@Override

? ? public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(getMyInterceptor())

.addPathPatterns("/**").

excludePathPatterns("/user/login");

}

}


二 跨域配置設(shè)置

package com.real2tech.virtualTeach.config;

import org.springframework.stereotype.Component;

import org.springframework.web.filter.OncePerRequestFilter;

import javax.servlet.FilterChain;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@Component

public class CORSFilterextends OncePerRequestFilter {

static final StringORIGIN ="Origin";

public? void doFilterInternal(

HttpServletRequest request,

HttpServletResponse response,

FilterChain filterChain)throws ServletException, IOException {

String origin = request.getHeader(ORIGIN);

response.setHeader("Access-Control-Allow-Origin","*");//* or origin as u prefer

? ? ? ? response.setHeader("Access-Control-Allow-Credentials","true");

response.setHeader("Access-Control-Allow-Methods","PUT, POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age","3600");

response.setHeader("Access-Control-Allow-Headers","content-type, token");

if (request.getMethod().equals("OPTIONS")) {

response.setStatus(HttpServletResponse.SC_OK);

}else{

filterChain.doFilter(request, response);

}

}

}

三 攔截器配置

*結(jié)合自己業(yè)務(wù)的加密方式? 以及其他要求


package com.real2tech.virtualTeach.config;

import com.real2tech.virtualTeach.entity.ManageUser;

import com.real2tech.virtualTeach.mapper.ManageUserMapper;

import com.real2tech.virtualTeach.utils.TokenUits;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Service;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@Component

@Service

public class FilterIPActionInterceptorimplements HandlerInterceptor {

private static Loggerlogger = LoggerFactory.getLogger(HandlerInterceptorAdapter.class);

@Autowired

? ? private ManageUserMappermanageUserMapper;

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

logger.info("request請求地址path[{}] uri[{}]", request.getServletPath(),request.getRequestURI());

String url = request.getRequestURI();

if (url.contains("/user/login")) {

return true;

}

String? token = request.getHeader("token");

String userId = TokenUits.JudgementToken(token);

ManageUser manageUser =manageUserMapper.selectById(userId);

if (null != manageUser) {

//? ? ? ? ? ? QueryWrapper queryWrapper = new QueryWrapper();

//? ? ? ? ? ? queryWrapper.eq("te_id", manageUser.getUserId());

//? ? ? ? ? ? List list = userEncryptionMapper.selectList(queryWrapper);

//? ? ? ? ? ? if (null != list && list.size() > 0) {

? ? ? ? ? ? ? ? if (token.equals(manageUser.getEncryptionDesc())) {

return true;

}else {

throw new Exception("請確認(rèn)你的權(quán)限");

}

//? ? ? ? ? ? }

? ? ? ? }

return false;

}

@Override

? ? public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

ModelAndView modelAndView)throws Exception {}

@Override

? ? public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception {

}

}



以上只為實(shí)現(xiàn) 比較簡單 勿噴? 親測可行??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,522評論 1 92
  • 本文包括:1、Listener簡介2、Servlet監(jiān)聽器3、監(jiān)聽三個域?qū)ο髣?chuàng)建和銷毀的事件監(jiān)聽器4、監(jiān)聽三個域?qū)?..
    廖少少閱讀 6,119評論 6 28
  • 本文包括:1、Filter簡介2、Filter是如何實(shí)現(xiàn)攔截的?3、Filter開發(fā)入門4、Filter的生命周期...
    廖少少閱讀 7,323評論 3 56
  • 對于java中的思考的方向,1必須要看前端的頁面,對于前端的頁面基本的邏輯,如果能理解最好,不理解也要知道幾點(diǎn)。 ...
    神尤魯?shù)婪?/span>閱讀 829評論 0 0
  • 上次我們說的三位英國經(jīng)驗(yàn)主義哲學(xué)家中的第一位洛克,那么我們今天就來談一談休謨的故事。 休謨是經(jīng)驗(yàn)主義哲學(xué)家中最重要...
    嘉愛佐鳴唯愛鼬神閱讀 1,287評論 0 1