yumi报错
This commit is contained in:
parent
c49615b0d6
commit
79366434f1
@ -55,18 +55,72 @@ var default_api = 'https://api.global-interaction.com/';
|
||||
return match ? match[0] : token;
|
||||
}
|
||||
|
||||
function decodeBase64URLJSON(value) {
|
||||
function decodeBase64URLText(value) {
|
||||
try {
|
||||
var normalized = String(value || '')
|
||||
.replace(/-/g, '+')
|
||||
.replace(/_/g, '/');
|
||||
while (normalized.length % 4) normalized += '=';
|
||||
return JSON.parse(window.atob(normalized));
|
||||
return window.atob(normalized);
|
||||
} catch (_) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function decodeBase64URLJSON(value) {
|
||||
try {
|
||||
var text = decodeBase64URLText(value);
|
||||
return text ? JSON.parse(text) : null;
|
||||
} catch (_) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function numericUserID(value) {
|
||||
var text = String(value || '').trim();
|
||||
return /^\d{6,}$/.test(text) ? text : '';
|
||||
}
|
||||
|
||||
function firstLongNumericID(value) {
|
||||
var match = String(value || '').match(/\d{12,}/);
|
||||
return match ? match[0] : '';
|
||||
}
|
||||
|
||||
function tokenPayloadUserID(payload) {
|
||||
if (!payload || typeof payload !== 'object') return '';
|
||||
var keys = ['userId', 'user_id', 'uid', 'id', 'sub'];
|
||||
for (var i = 0; i < keys.length; i += 1) {
|
||||
var userID = numericUserID(payload[keys[i]]);
|
||||
if (userID) return userID;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function tokenUserID() {
|
||||
var queryUserID =
|
||||
numericUserID(readQuery('userId')) ||
|
||||
numericUserID(readQuery('user_id')) ||
|
||||
numericUserID(readQuery('uid'));
|
||||
if (queryUserID) return queryUserID;
|
||||
|
||||
var token = getAccessToken();
|
||||
if (!token) return '';
|
||||
|
||||
var parts = String(token).split('.');
|
||||
for (var i = 0; i < parts.length; i += 1) {
|
||||
var payloadUserID = tokenPayloadUserID(
|
||||
decodeBase64URLJSON(parts[i])
|
||||
);
|
||||
if (payloadUserID) return payloadUserID;
|
||||
|
||||
var textUserID = firstLongNumericID(
|
||||
decodeBase64URLText(parts[i])
|
||||
);
|
||||
if (textUserID) return textUserID;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function isExpiredToken(token) {
|
||||
var parts = String(token || '').split('.');
|
||||
if (parts.length < 2) return false;
|
||||
@ -529,9 +583,15 @@ var default_api = 'https://api.global-interaction.com/';
|
||||
}
|
||||
|
||||
function configuredWebPayUserQuery(displayUserID) {
|
||||
return Object.assign(aslanUserQuery(displayUserID), {
|
||||
var query = Object.assign(aslanUserQuery(displayUserID), {
|
||||
sysOrigin: activeAppConfig.sys_origin || 'LIKEI',
|
||||
});
|
||||
if (isYumiWebPay() && !query.userId && !query.account) {
|
||||
// Yumi 的 user-profile 当前只从 query 里的 userId 或 account+sysOrigin 查用户,不会从 Authorization token 反解用户。
|
||||
// H5 token 入口会隐藏账号输入并传空 displayUserID,因此这里仅在没有显式身份参数时把 token 里的 uid 补成 userId。
|
||||
query.userId = tokenUserID();
|
||||
}
|
||||
return query;
|
||||
}
|
||||
|
||||
function aslanPaymentMethods(options) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user