| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- import {APP_NAME, SERVER_API_DOMAIN, SERVER_API_HTTP_TYPE, SERVER_API_PORT, SERVER_API_VERSION, REQUEST_URL} from "./config";
- import userInfo from './userInfo';
- import tool from './tool';
- import axios from './axiosPlugin'
- import ElementUI from 'element-ui'
- const network = {
- loginGetAccessToken(adminName, password){
- let promise = new Promise((resolve, reject) => {
- // if(userInfo.hasLogin()){
- // reject('E40005');
- // return false;
- // }
- axios.post(`${REQUEST_URL}oauths/login?suppress_response_code=1`, {
- LoginForm : {
- adminName,
- password
- }
- }).then(response => {
- // 更新本地accessToken
- userInfo.accessToken(response.accessToken);
- userInfo.accessTokenExpiresIn(response.accessTokenExpiresIn);
- userInfo.accessTokenUpdateAt(response.accessTokenUpdateAt);
- userInfo.refreshToken(response.refreshToken);
- userInfo.refreshTokenExpiresIn(response.refreshTokenExpiresIn);
- userInfo.refreshTokenUpdateAt(response.refreshTokenUpdateAt);
- userInfo.loginTimestamp(response.accessTokenUpdateAt);
- // 成功
- resolve(response);
- }).catch(error => {
- //console.log('登录获取数据错误');
- userInfo.clear();
- reject(error);
- });
- });
- return promise;
- },
- updateAccessToken(){
- let promise = new Promise((resolve, reject) => {
- if(!userInfo.hasLogin()){
- //console.log('尚未登录');
- //userInfo.clear();
- reject('E40004');
- return false;
- }
- // 比较本地accessToken是否还有效
- if(userInfo.accessToken() && userInfo.accessTokenExpiresIn() && parseInt(userInfo.accessTokenExpiresIn()) + parseInt(userInfo.accessTokenUpdateAt()) - 30 > parseInt(tool.getTimestamp())){
- // 有效
- //console.log('accessToken有效');
- resolve(userInfo.accessToken());
- return true;
- } else {
- // 已失效,去更新
- let refreshToken = userInfo.refreshToken();
- let refreshTokenExpiresIn = userInfo.refreshTokenExpiresIn();
- let refreshTokenUpdateAt = userInfo.refreshTokenUpdateAt();
- if(refreshToken && refreshTokenExpiresIn && parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
- // 有效,去更新
- axios.get(`${REQUEST_URL}oauths/refresh-token?suppress_response_code=1&refresh-token=${refreshToken}`).then(response => {
- // 更新本地accessToken
- userInfo.accessToken(response.accessToken);
- userInfo.accessTokenExpiresIn(response.accessTokenExpiresIn);
- userInfo.accessTokenUpdateAt(response.accessTokenUpdateAt);
- userInfo.refreshToken(response.refreshToken);
- userInfo.refreshTokenExpiresIn(response.refreshTokenExpiresIn);
- userInfo.refreshTokenUpdateAt(response.refreshTokenUpdateAt);
- // 成功
- //console.log('accessToken更新成功,refreshToken更新为:'+userInfo.refreshToken());
- //console.log('accessToken更新成功,refreshToken的更新时间为:'+tool.formatDate(userInfo.refreshTokenUpdateAt()));
- //console.log('accessToken更新成功,refreshToken的有效时间为:'+userInfo.refreshTokenExpiresIn());
- resolve(response.accessToken);
- }).catch(error => {
- //userInfo.clear();
- //console.log(error);
- reject('E40001');
- });
- } else {
- //console.log('refreshToken已失效');
- userInfo.clear();
- // 失效
- reject('E40003');
- return false;
- }
- }
- });
- return promise;
- },
- getUserInfo(callback, errorback){
- let promise
- this.updateAccessToken().then(accessToken => {
- return promise = new Promise((resolve, reject) => {
- //let accessToken = userInfo.accessToken();
- axios.get(`${REQUEST_URL}oauths/info?suppress_response_code=1&access-token=${accessToken}`).then(response => {
- // 更新本地userInfo
- userInfo.userId(response.ID);
- userInfo.adminName(response.ADMIN_NAME);
- userInfo.baseData({roleId: response.ROLE_ID});
- // 成功
- resolve(response);
- }).catch( error => {
- reject(error);
- });
- });
- }).then(response => {
- callback(response);
- }).catch(error => {
- //console.log('获取信息失败');
- errorback(error);
- });
- //return promise;
- },
- getMenu(callback, errorback){
- let promise
- this.updateAccessToken().then(accessToken => {
- return promise = new Promise((resolve, reject) => {
- //let accessToken = userInfo.accessToken();
- axios.get(`${REQUEST_URL}oauths/menu?suppress_response_code=1&access-token=${accessToken}`).then(response => {
- // 成功
- resolve(response);
- }).catch( error => {
- reject(error);
- });
- });
- }).then(response => {
- callback(response);
- }).catch(error => {
- //console.log(error);
- errorback(error);
- });
- //return promise;
- },
- getData(route, callback, errorback){
- let promise
- this.updateAccessToken().then(accessToken => {
- return promise = new Promise((resolve, reject) => {
- //let accessToken = userInfo.accessToken();
- axios.get(`${REQUEST_URL}${route}?suppress_response_code=1&access-token=${accessToken}`).then(response => {
- // 成功
- resolve(response);
- }).catch( error => {
- reject(error);
- });
- });
- }).then(response => {
- callback(response);
- }).catch(error => {
- error = tool.errorHandle(error);
- ElementUI.Message.error(error.message);
- if(errorback !== undefined){
- errorback(error);
- }
- });
- },
- postData(route, data, callback, errorback){
- let promise
- this.updateAccessToken().then(accessToken => {
- return promise = new Promise((resolve, reject) => {
- //let accessToken = userInfo.accessToken();
- axios.post(`${REQUEST_URL}${route}?suppress_response_code=1&access-token=${accessToken}`, data).then(response => {
- // 成功
- resolve(response);
- }).catch( error => {
- reject(error);
- });
- });
- }).then(response => {
- callback(response);
- }).catch(error => {
- error = tool.errorHandle(error);
- ElementUI.Message.error(error.message);
- if(errorback !== undefined){
- errorback(error);
- }
- });
- }
- }
- export default network;
|