|
@@ -3,10 +3,15 @@ import {
|
|
|
requestEncode,
|
|
|
responseDecode
|
|
|
} from "./ProtoMap";
|
|
|
-import {NoTokenServants} from './../API/ProtoConfig';
|
|
|
+import { NoTokenServants } from './../API/ProtoConfig';
|
|
|
|
|
|
import { BASEURL } from "../API/Constant";
|
|
|
|
|
|
+/**
|
|
|
+ * 超过N天就直接重新登录吧
|
|
|
+ */
|
|
|
+const TOKEN_TIMEOUT = 1000*60*60*24*15
|
|
|
+
|
|
|
//这个path需要token
|
|
|
const PATH = 'Ohplay/Web/HttpToTcp';
|
|
|
//这个path不需要token
|
|
@@ -14,48 +19,73 @@ const PATH1 = 'ohplay/Web/HttpToTcp';
|
|
|
|
|
|
let token = "";
|
|
|
|
|
|
+/**
|
|
|
+ * 保存token和uid
|
|
|
+ * @param {string} Token
|
|
|
+ * @param {number} uid
|
|
|
+ */
|
|
|
+function saveToken(Token, uid) {
|
|
|
+ token = Token
|
|
|
+ getApp().globalData.uid = uid
|
|
|
+ // 缓存token
|
|
|
+ uni.setStorage({
|
|
|
+ key: 'token',
|
|
|
+ data: {
|
|
|
+ token,
|
|
|
+ time:new Date().getTime(),
|
|
|
+ },
|
|
|
+ });
|
|
|
+ uni.setStorage({
|
|
|
+ key: 'uid',
|
|
|
+ data: uid
|
|
|
+ })
|
|
|
+ uni.$emit('user_getUid',{uid,token})
|
|
|
+}
|
|
|
+
|
|
|
// 登录
|
|
|
function login() {
|
|
|
|
|
|
uni.login({
|
|
|
provider: 'weixin',
|
|
|
success: function (loginRes) {
|
|
|
- const data = {
|
|
|
- server: 2,
|
|
|
- servant: 1001,
|
|
|
- version: 3,
|
|
|
- data: {
|
|
|
- // phone:Buffer.from('3246541321'),
|
|
|
- phone: '17688768233',
|
|
|
- code: loginRes.code,
|
|
|
- verifyCode: 'asdasd',
|
|
|
- nickname: "4",
|
|
|
- head_url: "6",
|
|
|
- system_type: 1,
|
|
|
+ console.log(`uni.login errMsg = ${loginRes.errMsg}`)
|
|
|
+ if (loginRes.code) {
|
|
|
+ const data = {
|
|
|
+ server: 2,
|
|
|
+ servant: 10005,
|
|
|
+ data: {
|
|
|
+ code: loginRes.code,
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- request(data).then((res) => {
|
|
|
- // console.log(res)
|
|
|
- if(res.code === 0 && res.data.errInfo.errorCode === 0) {
|
|
|
-
|
|
|
- token = res.data.token;
|
|
|
- // 缓存token
|
|
|
- uni.setStorage({
|
|
|
- key: 'token',
|
|
|
- data: res.data.token,
|
|
|
+ request(data).then((res) => {
|
|
|
+ // console.log(res)
|
|
|
+ if (res.code === 0) {
|
|
|
+ if (res.data.token && res.data.id) {
|
|
|
+ //保存token
|
|
|
+ saveToken(res.data.token,res.data.id)
|
|
|
+ } else {
|
|
|
+ //进入登录页面
|
|
|
+ gotoLoginPage()
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ };
|
|
|
+ uni.showToast({
|
|
|
+ title: res.msg,
|
|
|
+ duration: 2000,
|
|
|
+ icon: "none"
|
|
|
});
|
|
|
- return;
|
|
|
- };
|
|
|
+
|
|
|
+ }).catch((res) => {
|
|
|
+ console.log("catch")
|
|
|
+ console.log(res);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
uni.showToast({
|
|
|
- title: res.msg,
|
|
|
+ title: loginRes.errMsg,
|
|
|
duration: 2000,
|
|
|
icon: "none"
|
|
|
});
|
|
|
-
|
|
|
- }).catch((res)=> {
|
|
|
- console.log("catch")
|
|
|
- console.log(res);
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
// return res
|
|
@@ -65,8 +95,19 @@ function login() {
|
|
|
function getToken() {
|
|
|
try {
|
|
|
const value = uni.getStorageSync('token');
|
|
|
- if (value) {
|
|
|
- token = value;
|
|
|
+ const uid = uni.getStorageInfoSync('uid');
|
|
|
+ if (value && uid) {
|
|
|
+ const nowTime = new Date().getTime();
|
|
|
+ //token超时则重新登录
|
|
|
+ if(nowTime - value.time > TOKEN_TIMEOUT){
|
|
|
+ //清除token和uid
|
|
|
+ cleanUserInfo();
|
|
|
+ login()
|
|
|
+ }else{
|
|
|
+ token = value;
|
|
|
+ getApp().globalData.uid = uid
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
login();
|
|
|
}
|
|
@@ -75,8 +116,29 @@ function getToken() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function cleanUserInfo(){
|
|
|
+ try{
|
|
|
+ uni.removeStorageSync('token')
|
|
|
+ uni.removeStorageSync('uid')
|
|
|
+ getApp().globalData.uid = null
|
|
|
+ token = ''
|
|
|
+ }catch(e){
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function gotoLoginPage(){
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '../../pages/login/login',
|
|
|
+ complete(res){
|
|
|
+ console.log(res);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// 获取token
|
|
|
-//getToken();
|
|
|
+getToken();
|
|
|
// login();
|
|
|
|
|
|
|
|
@@ -87,22 +149,22 @@ const defaultHeader = {
|
|
|
|
|
|
// 拦截器
|
|
|
uni.addInterceptor('request', {
|
|
|
- invoke(args) {
|
|
|
- // request 触发前拼接 url
|
|
|
- //args.url = BASEURL;
|
|
|
- if(token) {
|
|
|
+ invoke(args) {
|
|
|
+ // request 触发前拼接 url
|
|
|
+ //args.url = BASEURL;
|
|
|
+ if (token) {
|
|
|
args.header.token = token;
|
|
|
};
|
|
|
- },
|
|
|
- success(args) {
|
|
|
- // 请求成功后
|
|
|
- },
|
|
|
- fail(err) {
|
|
|
- console.log('interceptor-fail',err)
|
|
|
- },
|
|
|
- complete(res) {
|
|
|
- console.log('interceptor-complete',res)
|
|
|
- }
|
|
|
+ },
|
|
|
+ success(args) {
|
|
|
+ // 请求成功后
|
|
|
+ },
|
|
|
+ fail(err) {
|
|
|
+ console.log('interceptor-fail', err)
|
|
|
+ },
|
|
|
+ complete(res) {
|
|
|
+ console.log('interceptor-complete', res)
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
/**
|
|
@@ -111,9 +173,9 @@ uni.addInterceptor('request', {
|
|
|
* @returns
|
|
|
*/
|
|
|
function request(data, type = "POST", header = defaultHeader) {
|
|
|
- let url = BASEURL+PATH
|
|
|
- if(NoTokenServants.indexOf(data.servant)>=0){
|
|
|
- url = BASEURL+PATH1
|
|
|
+ let url = BASEURL + PATH
|
|
|
+ if (NoTokenServants.indexOf(data.servant) >= 0) {
|
|
|
+ url = BASEURL + PATH1
|
|
|
}
|
|
|
return new Promise((resolve, reject) => {
|
|
|
uni.request({
|
|
@@ -133,7 +195,7 @@ function request(data, type = "POST", header = defaultHeader) {
|
|
|
|
|
|
if (resJson.code === 0) {
|
|
|
|
|
|
- let arrayBuffer = Buffer.from(resJson.data,'base64');
|
|
|
+ let arrayBuffer = Buffer.from(resJson.data, 'base64');
|
|
|
|
|
|
let data = responseDecode(arrayBuffer);
|
|
|
let code = 0;
|
|
@@ -154,6 +216,17 @@ function request(data, type = "POST", header = defaultHeader) {
|
|
|
msg
|
|
|
});
|
|
|
} else {
|
|
|
+ if (resJson.code === 10004) {
|
|
|
+ uni.showModal({
|
|
|
+ title: '温馨提示',
|
|
|
+ content: 'token已失效,请重新登录',
|
|
|
+ showCancel: false,
|
|
|
+ success() {
|
|
|
+ //进入登录界面
|
|
|
+ gotoLoginPage()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
resolve({
|
|
|
code: resJson.code,
|
|
|
msg: resJson.info
|
|
@@ -182,4 +255,4 @@ function request(data, type = "POST", header = defaultHeader) {
|
|
|
|
|
|
}
|
|
|
|
|
|
-module.exports = request;
|
|
|
+module.exports = { request, saveToken };
|