@cloudbase/framework-plugin-low-code 0.7.8 → 0.7.10-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/builder/core/generate.d.ts.map +1 -1
- package/lib/builder/core/generate.js +2 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +38 -73
- package/lib/weapps-core/utils/style.js +0 -8
- package/package.json +1 -1
- package/template/html/index.html.ejs +420 -428
- package/template/mp/package.json +1 -1
- package/template/package.json +1 -2
- package/template/src/handlers/utils/common.js +36 -24
- package/template/src/index.jsx +5 -8
- package/template/webpack/web.prod.js +1 -1
package/template/mp/package.json
CHANGED
package/template/package.json
CHANGED
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@cloudbase/js-sdk": "2.4.0-alpha.0",
|
|
9
|
-
"@cloudbase/weda-cloud-sdk": "1.0.
|
|
9
|
+
"@cloudbase/weda-cloud-sdk": "1.0.10",
|
|
10
10
|
"@tcwd/weapps-core": "2.2.6",
|
|
11
11
|
"@tcwd/weapps-sdk": "1.2.9",
|
|
12
12
|
"@zxing/library": "^0.18.6",
|
|
13
|
-
"fastclick": "^1.0.6",
|
|
14
13
|
"lodash": "^4.17.19",
|
|
15
14
|
"mobx": "^5.15.4",
|
|
16
15
|
"mobx-react-lite": "^2.0.7",
|
|
@@ -218,29 +218,44 @@ export async function checkAnonymous() {
|
|
|
218
218
|
return isAnonymous;
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
let loginConfig;
|
|
222
|
+
export async function getLoginConfig() {
|
|
223
|
+
if (loginConfig !== undefined) {
|
|
224
|
+
return loginConfig;
|
|
225
|
+
}
|
|
226
|
+
const { staticResourceDomain, id } = app.__internal__.getConfig();
|
|
227
|
+
const url = `https://${staticResourceDomain}/${id}/login.config.json?t=${Date.now()}`;
|
|
228
|
+
try {
|
|
229
|
+
let response = await fetch(url);
|
|
230
|
+
loginConfig = await response.json();
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loginConfig = {};
|
|
233
|
+
console.error(`加载登录配置${url}失败`, e);
|
|
234
|
+
}
|
|
235
|
+
return loginConfig;
|
|
236
|
+
}
|
|
237
|
+
|
|
221
238
|
/**
|
|
222
239
|
* 检查页面权限
|
|
223
240
|
**/
|
|
224
241
|
export async function checkAuth(app, appId, $page) {
|
|
225
242
|
<% if (isAdminPortal || isXPage) { %>return true;<% } %>
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return true
|
|
229
|
-
}
|
|
230
|
-
app.showNavigationBarLoading();
|
|
243
|
+
app.showNavigationBarLoading();
|
|
244
|
+
const loginConfig = await getLoginConfig();
|
|
231
245
|
const requestList = [getAccessPermission(app, appId, $page.id)];
|
|
232
|
-
//
|
|
233
|
-
if (
|
|
246
|
+
// 登录配置内有web登录项则认为开启web登录
|
|
247
|
+
if (loginConfig.web?.length > 0) {
|
|
234
248
|
requestList.push(getAuthConfig(app));
|
|
235
249
|
requestList.push(checkAnonymous());
|
|
250
|
+
requestList.push(getLoginConfig()); // 提前并行加载
|
|
236
251
|
}
|
|
237
252
|
const [isAccess, authConfig, isAnonymous] = await Promise.all(requestList);
|
|
238
253
|
app.hideNavigationBarLoading();
|
|
239
254
|
|
|
240
|
-
if (
|
|
255
|
+
if (loginConfig.web?.length > 0 && isAnonymous) {
|
|
241
256
|
if (authConfig.NeedLogin || (!isAccess && authConfig.RejectStrategy === 'to_login')) {
|
|
242
257
|
redirectToLogin($page);
|
|
243
|
-
return
|
|
258
|
+
return false;
|
|
244
259
|
}
|
|
245
260
|
}
|
|
246
261
|
|
|
@@ -253,25 +268,22 @@ export async function checkAuth(app, appId, $page) {
|
|
|
253
268
|
return isAccess;
|
|
254
269
|
}
|
|
255
270
|
|
|
256
|
-
export function redirectToLogin(currentPage) {
|
|
271
|
+
export async function redirectToLogin(currentPage) {
|
|
257
272
|
// 去登录则清空权限缓存。
|
|
258
273
|
_AUTH_CACHE_MAP = {};
|
|
259
274
|
const app = window.app;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
if (loginPage) {
|
|
275
|
+
|
|
276
|
+
const loginConfig = await getLoginConfig();
|
|
277
|
+
if (loginConfig.web?.length > 0) {
|
|
278
|
+
const { staticResourceDomain, envId, id, clientId } = app.__internal__.getConfig();
|
|
279
|
+
const url = `${location.origin}/__auth/?redirect_uri=${encodeURIComponent(
|
|
280
|
+
location.href,
|
|
281
|
+
)}&app_id=${id}&env_id=${envId}&client_id=${clientId}`;
|
|
268
282
|
app.redirectTo({
|
|
269
|
-
|
|
270
|
-
params: {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
})
|
|
283
|
+
mode: 'web',
|
|
284
|
+
params: {},
|
|
285
|
+
url,
|
|
286
|
+
});
|
|
275
287
|
} else {
|
|
276
288
|
app.showToast({
|
|
277
289
|
title: '用户未登录',
|
package/template/src/index.jsx
CHANGED
|
@@ -8,11 +8,10 @@ import './index.less'
|
|
|
8
8
|
import './datasources'
|
|
9
9
|
import { initGlobalVar } from './handlers/initWebEnv'
|
|
10
10
|
import '@babel/polyfill/noConflict'
|
|
11
|
-
import attachFastClick from 'fastclick'
|
|
12
11
|
import { initWebConfig } from 'handlers/lifecycle'
|
|
13
12
|
const AppConfig = require('../webpack/miniprogram.config')
|
|
14
13
|
import { app } from './app/global-api'
|
|
15
|
-
import { redirectToLogin,
|
|
14
|
+
import { redirectToLogin, getAuthConfig, checkAnonymous, getLoginConfig } from './handlers/utils'
|
|
16
15
|
// app 中注册配置页面以及app的全局配置miniprogram.config,h5里分app以及web页分别处理,使用process.env.isApp 区分判断
|
|
17
16
|
if (process.env.isApp) {
|
|
18
17
|
initWebConfig(app, AppConfig);
|
|
@@ -26,8 +25,7 @@ setConfig({
|
|
|
26
25
|
},
|
|
27
26
|
beforeCallFunction: async (params) => {
|
|
28
27
|
try{
|
|
29
|
-
const
|
|
30
|
-
|
|
28
|
+
const loginConfig = await getLoginConfig();
|
|
31
29
|
let skip = false;
|
|
32
30
|
switch (params?.data?.methodName) {
|
|
33
31
|
case 'callWedaApi': {
|
|
@@ -39,7 +37,7 @@ setConfig({
|
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
// 后续做过滤处理
|
|
42
|
-
if (!
|
|
40
|
+
if (!(loginConfig.web?.length > 0) || (params?.data?.mode === 'c' && skip)) {
|
|
43
41
|
return params;
|
|
44
42
|
}
|
|
45
43
|
const { accessToken } = await getAccessToken();
|
|
@@ -60,8 +58,8 @@ setConfig({
|
|
|
60
58
|
},
|
|
61
59
|
async afterCallFunction(params, error, res) {
|
|
62
60
|
if(params?.data?.params?.action != 'DescribeRuntimeResourceStrategy' && ['InnerError.AuthFailure','InvalidAccessToken'].includes(res?.result?.code)) {
|
|
63
|
-
const
|
|
64
|
-
if (
|
|
61
|
+
const loginConfig = await getLoginConfig();
|
|
62
|
+
if (loginConfig.web?.length > 0) {
|
|
65
63
|
const authConfig = await getAuthConfig();
|
|
66
64
|
const isAnonymous = await checkAnonymous();
|
|
67
65
|
if (isAnonymous && authConfig.RejectStrategy == 'to_login') {
|
|
@@ -140,7 +138,6 @@ function render(props){
|
|
|
140
138
|
|
|
141
139
|
// if (!process.env.isAdminPortal) {
|
|
142
140
|
if (!window.__POWERED_BY_QIANKUN__) {
|
|
143
|
-
attachFastClick && attachFastClick.attach && attachFastClick.attach(document.body)
|
|
144
141
|
render()
|
|
145
142
|
}
|
|
146
143
|
|