zqwang 1 年之前
父节点
当前提交
cb6023f650
共有 9 个文件被更改,包括 171 次插入21 次删除
  1. 1 0
      App.vue
  2. 2 1
      common/config.js
  3. 0 1
      common/lib.js
  4. 26 13
      common/request.js
  5. 117 0
      common/utils.js
  6. 18 0
      common/wecaht.min.app.js
  7. 3 4
      main.js
  8. 2 2
      manifest.json
  9. 2 0
      static/js/helper.js

+ 1 - 0
App.vue

@@ -2,6 +2,7 @@
 	import Vue from 'vue'
 	export default {
 		onLaunch: function() {
+			
 			const extConfig = uni.getExtConfigSync ? uni.getExtConfigSync() : {};
 			if(extConfig.appid){
 				this.$config.appId = extConfig.appid;

+ 2 - 1
common/config.js

@@ -1,7 +1,8 @@
 // 配置信息
 export default {
 	// api请求前缀
-	webUrl:'https://xjc.demo.hongcd.com',//uni.getStorageSync("config").weburl?uni.getStorageSync("config").weburl:'http://192.168.10.175',
+	webUrl:"http://api.zyduanju.com",
+	// webUrl:'http://api.duanju.dududus.com',//uni.getStorageSync("config").weburl?uni.getStorageSync("config").weburl:'http://192.168.10.175',
 	imgUrl:'https://xjc.demo.hongcd.com',//uni.getStorageSync("config").imgurl?uni.getStorageSync("config").imgurl:'http://192.168.10.175',
 	staticUrl:'https://xjc.demo.hongcd.com/img/',//静态图片地址https://xjc.demo.hongcd.com
 	// websocket地址

+ 0 - 1
common/lib.js

@@ -105,7 +105,6 @@ const Update = function(showToast = false){
 	});  
 	// #endif  
 }
-
 import config from "./config.js"
 export default {
 	NetWork,

+ 26 - 13
common/request.js

@@ -1,27 +1,40 @@
 // 引入配置文件
 import config from "./config.js";
+// #ifdef MP-WEIXIN
+	import  wxApp from "./wecaht.min.app.js"
+	import {getToken}  from './utils.js'
+	const token = getToken();
+// #endif
+const filterNoToken = ["/api/auth/refreshToken", "/api/auth/login"];
+
 export default{
 	config:{
 		baseUrl:config.webUrl,
 		header:{
 			'Content-Type':'application/json;charset=UTF-8',
-			'Content-Type':'application/x-www-form-urlencoded'
 		},
 		data: {},
 		method: "GET",
-		dataType: "json",
+		dataType: "json", 
 	},
-	request(options = {}){
+	async request(options = {}){  
 		options.header = options.header || this.config.header;
 		options.method = options.method || this.config.method;
 		options.dataType = options.dataType || this.config.dataType;
-		options.url = this.config.baseUrl+options.url;
 		// TODO:token增加等操作
-		if (options.token) {
-			options.data.token = uni.getStorageSync("userinfo").token;
-			options.data.uid = uni.getStorageSync("userinfo").id;
-		}
-		var version='web';
+		  
+		options.url = this.config.baseUrl+options.url;
+		
+		var version='web';  
+		// #ifdef MP-WEIXIN  
+			options.header.appid = wxApp.getWXAppId(); 
+			options.header.source = 'wxapp';
+			if(filterNoToken.indexOf(options.url) === -1){
+				options.header.Authorization = token;
+			}  
+			version = "wxapp"; 
+		// #endif
+		console.log('ctttttttttttttttttt',token)
 		// #ifdef APP-PLUS
 		var version=plus.runtime.version
 		// #endif
@@ -30,26 +43,26 @@ export default{
 			if(res[1].data.msg=='version10001'){
 				uni.showModal({
 					title: '更新提示',
-					content:"当前版本需要更新,请及时更新",
+					content:"当前版本需要更新,请及时更新", 
 					showCancel: false,
 					confirmText: "确定",
 					success: function (ress) {
 						plus.runtime.openURL(res[1].data.data);
 						uni.reLaunch({
 							url:'/pages/public/login'
-						})
+						}) 
 					}
 				});
 				return false;
 			}
-			return res;
+			return res[1].data.data;
 		});
 	},
 	get(url,data,options={}){
 		options.url = url;
 		options.data = data;
 		options.method = 'GET';
-		return this.request(options);
+		return this.request(options); 
 	},
 	post(url,data,options={}){
 		options.url = url;

+ 117 - 0
common/utils.js

@@ -0,0 +1,117 @@
+
+
+import wxApp from "./wecaht.min.app.js";
+ import request from "./request.js"
+let token = null;
+let requestLoginTime = 0;
+
+// 获取token
+export const getToken = async () => {
+
+	if (getToken.promise) return getToken.promise;
+	if(!token) token = uni.getStorageSync('token');
+	
+	// token格式化
+	if (token && typeof token === "string") token = JSON.parse(token);
+	
+	console.log("checkToken", checkToken(token));
+	
+	if (!token) getToken.promise = login();
+	else if (checkToken(token)) return Promise.resolve(token.token);
+	else {
+		getToken.promise = login();
+	}
+	
+	getToken.promise = getToken.promise
+		.finally(() => {
+			getToken.promise = null;
+		})
+		.then(r => {
+			console.log("refresh");
+			return setToken(r);
+		});
+
+	return getToken.promise;
+};
+
+
+// 登录
+export const login = async () => {
+	requestLoginTime++;
+	if (requestLoginTime != 1) {
+		let loginResponed = await loginPromise();
+	}
+	let code = await (wxApp.getWxMinAppUuerCode());
+	let res = request.post("/api/auth/login",{code:code,appid:wxApp.getWXAppId()});
+	requestLoginTime = 0;
+	return res;
+	// return 
+};
+
+
+const loginPromise = () => {
+	return new Promise((resolve, reject) => {
+		setTimeout(() => {
+			resolve(true)
+		}, 800)
+	})
+}
+
+
+// 检测数据结果
+export const checkResult = r => {
+	if (!r.data.code) {
+		return r.data.data;
+	} else {
+		return Promise.reject(r);
+	}
+};
+
+// 刷新token
+const refreshToken = () => {
+	
+	// let res = request.post("/api/auth/refreshToken",{refreshToken:code,appid:wxApp.getWXAppId()});
+	console.log('11111111111sssssssssssssssss',token); 
+	// return fly
+	// 	.get("/refreshToken", {
+	// 		token: token.token
+	// 	}, {
+	// 		headers: {
+	// 			Authorization: token.token 
+	// 		}
+	// 	}) 
+	// 	.then(r => {
+	// 		return r;
+	// 	})
+	// 	.catch(e => {
+	// 		console.log(e);
+	// 		console.error("刷新token失败");
+	// 		return Promise.reject(e);
+	// 	});
+};
+
+// 检查token的有效期
+const checkToken = t => {
+	return new Date().getTime() < t.time;
+};
+
+// 设置token
+const setToken = async t => {
+	token = formatToken(t);
+	uni.setStorageSync("token",token);
+	return t.token;
+};
+
+// 清除token 
+export const clearToken = async () => {
+	token = null;
+	uni.removeStorageSync('token');
+	console.log("clear token done"); 
+};
+
+// 处理token的格式
+const formatToken = t => { 
+	t.token = "Bearer " + t.accessToken;
+	t.time = ((t.expiration -600)* 1000);
+	return t; 
+};

+ 18 - 0
common/wecaht.min.app.js

@@ -0,0 +1,18 @@
+// 获取小程序APPid
+const  getWXAppId = () =>{
+	const accountInfo = wx.getAccountInfoSync();
+	return accountInfo.miniProgram.appId
+}
+
+const getWxMinAppUuerCode = async () => {
+
+	
+	let code = await (await wx.login()).code;
+	console.log('code',code)
+	return code;
+};
+
+export default{
+	getWXAppId,
+	getWxMinAppUuerCode,
+}

+ 3 - 4
main.js

@@ -11,9 +11,7 @@ import md5 from './static/js/md5.js';
 Vue.prototype.$Md5  =  md5;
 
 //权限相关的判断
-import {common} from './static/js/mixin/common.js';
-Vue.mixin(common);
-
+//  
 // 挂载全局方法
 import configs from "./common/config.js"
 Vue.prototype.configs=configs
@@ -23,7 +21,6 @@ Vue.prototype.configs=configs
 import request from "./common/request.js";
 Vue.prototype.$httpas = request;
 
-
 Vue.prototype.$mbgColor='#ffffff'
 
 
@@ -34,4 +31,6 @@ const app = new Vue({
     ...App,
 	store
 })
+
+
 app.$mount()

+ 2 - 2
manifest.json

@@ -65,7 +65,7 @@
     },
     "quickapp" : {},
     "mp-weixin" : {
-        "appid" : "",
+        "appid" : "wx77a5614f34087dc2",
         "setting" : {
             "urlCheck" : false,
             "postcss" : true,
@@ -104,7 +104,7 @@
             }
         },
         "devServer" : {
-            "https" : true,
+            "https" : false,
             "port" : 9999
         },
         "router" : {

+ 2 - 0
static/js/helper.js

@@ -176,6 +176,8 @@ const addzero = function(i) {
 	}
 }
 
+
+
 export default {
 	getDistance,
 	getRectangle,