Commit b22422a0 authored by zhangyichen's avatar zhangyichen

封装登录接口信息

parent 931f5757
import axios from '@/utils/request'
import axiosLogin from '@/utils/requestLogin'
import axiosIns from 'axios'
const api = {
......@@ -85,7 +86,7 @@ export function test(params) {
}
export function getToken(params) {
return axios({
return axiosLogin({
baseURL: '',
url: process.env.VUE_APP_BASE_API2 + api.getToken,
method: 'get',
......@@ -94,7 +95,7 @@ export function getToken(params) {
}
export function getUserId() {
return axios({
return axiosLogin({
baseURL: '',
url: process.env.VUE_APP_BASE_API2 + api.getUserId,
method: 'get'
......@@ -578,7 +579,7 @@ export function onlyFindBase(data) {
})
}
export function getAllRole(data) {
return axios({
return axiosLogin({
url: '' + api.getAllRole,
method: 'get',
params: data
......
import axios from 'axios'
// import {Toast} from 'vant'
import Vue from 'vue'
// import store from '@/store'
const formData = function(data) {
const _formData = new FormData()
for (var i in data) {
_formData.append(i, data[i])
}
return _formData
},
// create an axios instance
service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
timeout: 5000, // request timeout
headers: {'clientType': 'app'}
})
let refreshTokenState = false,
user = {
id: '',
corpId: '',
curriculumImg: require('@assets/images/curriculumImg.png'),
TrainImg: require('@assets/images/TrainImg.png')
},
reloadRequests = []
// 刷新token的请求方法
function getRefreshToken() {
const params = {
refresh_token: localStorage.getItem('task_refreshToken')
}
refreshTokenState = true
// 注意!!!!!!!!最终生产环境,此处url的配置
return service.get(process.env.VUE_APP_BASE_API2 + '/api/refresh/token', {params, baseURL: ''})
}
// request interceptor
service.interceptors.request.use(
config => {
const accessToken = localStorage.getItem('task_accessToken')
if (accessToken) {
config.headers['Authorization'] = 'Bearer ' + accessToken
}
if (config.method === 'post' && config.data) {
config.data['userId'] = sessionStorage.getItem('userId') || user.id
config.data['corpId'] = sessionStorage.getItem('corpId') || user.corpId
} else if (config.params) {
config.params.userId = sessionStorage.getItem('userId') || user.id
config.params.corpId = sessionStorage.getItem('corpId') || user.corpId
}
/* 外部分享课程处理 */
if (window.location.href.indexOf('CourseTrainOut') > -1) {
if (config.method === 'post') {
config.data['isExternalShare'] = '1'
config.data['corpId'] = ''
config.data['userId'] = ''
} else {
config.params['isExternalShare'] = '1'
config.params['userId'] = ''
config.params['corpId'] = ''
}
config.headers['Authorization'] = ''
}
/* 外部分享课程处理完 */
if (config.method === 'post') {
config.data = formData(config.data)
}
return config
},
error => {
// do something with request error
console.log(error) // for debug
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data
if (res.code && res.code !== 'M0000' && res.code !== 200) {
const resConfig = response.config
// 如果 accessToken过期
// 暂时不判断refreshTokenState 刷新token状态,以避免某些请求在“刷新token”期间因为token过期而不再发出请求;
// 现在的问题在于,当token过期时,此时发出的请求都会各子去发出“刷新token”的请求
if ((res.code === 'G_T_001' || res.code === 'O_T_001')) {
// 刷新重新获取accessToken
return getRefreshToken().then((res2) => {
// refreshTokenState = false
console.log('refresh:', res2)
res2 = res2.data
if (res2.code === 'M0000') {
// 两个token 获取成功,继续完成被拦截的请求(因为该请求因token过期被拦截)
localStorage.setItem('task_accessToken', res2.data.access_token)
localStorage.setItem('task_refreshToken', res2.data.refresh_token)
resConfig.headers['Authorization'] = 'Bearer ' + res2.data.access_token
resConfig.url = resConfig.url.indexOf('/api/education/v1') > -1 ? resConfig.url.split('/api/education/v1')[1] : resConfig.url
return service(resConfig)
} else {
alert('token过期且重新获取失败,请稍后重试!')
}
})
} else {
// alert(res.message || res.msg)
console.log(res)
console.log(res.message || res.msg)
}
return Promise.reject(res)
} else {
// 请求拦截 判断课程封面是否为空,添加默认图片
if (res.code === 200 && res.data.rows) {
res.data.rows.map((list) => {
if (list.defaultUrl === '') {
if (list.lessonType === '0') {
list.defaultUrl = user.curriculumImg
} else if (list.lessonType === '1') {
list.defaultUrl = user.TrainImg
}
}
})
}
return response
}
},
error => {
console.log('err' + error) // for debug
if (!navigator.onLine || error === 'Network Error') {
alert('网络异常,请检查网络')
}
return Promise.reject(error)
}
)
export default service
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment