123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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;
- };
|