在前端进行登录操作时 如何触发拦截器中的 登录验证
时间: 2023-12-03 22:46:20 浏览: 42
在前端进行登录操作时,可以使用拦截器(interceptor)来拦截请求并进行登录验证。拦截器是一种在请求和响应之间进行拦截处理的机制,可以对请求进行预处理和后处理。在Vue.js的前端开发中,拦截器通常是通过axios实现的。
具体来说,可以在axios的配置中设置一个拦截器,在发送请求时进行登录验证。例如:
```javascript
import axios from 'axios'
// 创建axios实例
const instance = axios.create({
baseURL: 'http://api.example.com', // 接口的基础url
timeout: 10000 // 请求超时时间
})
// 添加请求拦截器
instance.interceptors.request.use(
config => {
// 在发送请求之前做些什么
// 比如判断是否已经登录
if (localStorage.getItem('token')) {
// 已经登录,添加token到请求头
config.headers.Authorization = localStorage.getItem('token')
} else {
// 没有登录,跳转到登录页面
router.push('/login')
}
return config
},
error => {
// 对请求错误做些什么
return Promise.reject(error)
}
)
// 添加响应拦截器
instance.interceptors.response.use(
response => {
// 对响应数据做些什么
return response
},
error => {
// 对响应错误做些什么
return Promise.reject(error)
}
)
export default instance
```
在上面的代码中,我们定义了一个axios实例,并添加了一个请求拦截器和一个响应拦截器。请求拦截器在发送请求之前进行登录验证,如果已经登录,则添加token到请求头;否则跳转到登录页面。这样在发送请求时,就会自动触发拦截器中的登录验证。