MCPcopy Create free account
hub / github.com/Bistutu/FluentRead / refreshToken

Function refreshToken

userscripts.js:1054–1081  ·  view source on GitHub ↗
(token)

Source from the content-addressed store, hash-verified

1052
1053// 返回有效的令牌或 false
1054function refreshToken(token) {
1055 return new Promise((resolve, reject) => {
1056 const decodedToken = parseJwt(token);
1057 const currentTimestamp = Math.floor(Date.now() / 1000); // 当前时间的UNIX时间戳(秒)
1058 if (decodedToken && currentTimestamp < decodedToken.exp) {
1059 resolve(token);
1060 return
1061 }
1062
1063 // 如果令牌无效或已过期,则尝试获取新令牌
1064 GM_xmlhttpRequest({
1065 method: 'GET',
1066 url: "https://edge.microsoft.com/translate/auth",
1067 onload: resp => {
1068 if (resp.status === 200) {
1069 let token = resp.responseText;
1070 if (!token) {
1071 reject(resp.responseText);
1072 return;
1073 }
1074 tokenManager.setToken(transModel.microsoft, token);
1075 resolve(token);
1076 } else reject(resp.status, resp.responseText);
1077 },
1078 onerror: error => reject(error)
1079 });
1080 });
1081}
1082
1083
1084// 解析 jwt,返回解析后对象

Callers 1

microsoftFunction · 0.70

Calls 1

parseJwtFunction · 0.70

Tested by

no test coverage detected