This commit is contained in:
+4
-25
@@ -47,32 +47,11 @@
|
||||
|
||||
if (code) {
|
||||
// 有 code → 进入授权 Loading 页处理
|
||||
// 从 state 中解析 device_id 和 action(OAuth 标准保证 state 原样回传)
|
||||
let action = '';
|
||||
let callbackDeviceId = deviceId || '';
|
||||
try {
|
||||
const stateStr = urlParams.get('state');
|
||||
if (stateStr) {
|
||||
const stateObj = JSON.parse(decodeURIComponent(stateStr));
|
||||
action = stateObj.action || action;
|
||||
callbackDeviceId = stateObj.device_id || callbackDeviceId;
|
||||
}
|
||||
} catch (_) {
|
||||
// state 解析失败,忽略
|
||||
}
|
||||
// 存入 localStorage,确保 loading 页面复用时也能获取(redirectTo 可能不触发 onLoad)
|
||||
if (action) {
|
||||
localStorage.setItem('__auth_action', action);
|
||||
}
|
||||
if (callbackDeviceId) {
|
||||
localStorage.setItem('__auth_device_id', callbackDeviceId);
|
||||
}
|
||||
// state 为 "base" 或 "userinfo",直接透传
|
||||
const state = urlParams.get('state') || '';
|
||||
let loadingUrl = '/pages/auth/loading?code=' + encodeURIComponent(code);
|
||||
if (action) {
|
||||
loadingUrl += '&action=' + action;
|
||||
}
|
||||
if (callbackDeviceId) {
|
||||
loadingUrl += '&device_id=' + callbackDeviceId;
|
||||
if (state) {
|
||||
loadingUrl += '&state=' + state;
|
||||
}
|
||||
uni.redirectTo({ url: loadingUrl });
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user