全部產品
Search
文件中心

Mobile Platform as a Service:JSAPI 鑒權設定方法

更新時間:Jul 25, 2024

mPaaS 建議所有的 JSAPI 訪問都需要添加存取控制,目前可以通過設定 provider 的方式添加存取控制。

  1. 設定自訂許可權控制 provider。

    public class H5JSApiPermissionProviderImpl implements H5JSApiPermissionProvider {
        @Override
        public boolean hasDomainPermission(String jsapi, String url) {
            // 在該方法裡,對所有url的jsapi請求進行校正,安全的url才可以允許存取,true表示jsapi可以調用,false表示不可以調用
            // 注意:以下代碼僅供參考,請根據您實際的業務需要,對url和jsapi進行校正
            //  另外還需對 jsapi、url、uri 等參數進行判空操作,防止發生 Nullpointer 異常
            Uri uri = Uri.parse(url);
            String domain = uri.getHost();
            String scheme = uri.getScheme();
            if (!TextUtils.isEmpty(domain) && domain.equals("www.example.com") && "https".equals(scheme)) {
                return true;
            } else {
                return false;
            }
        }
    
        @Override
        public boolean hasThisPermission(String jsapi, String url) {
            // 預設返回 false 即可
            return false;
        }
    }
    重要

    URL 要進行精準匹配,至少要匹配到 URI 類的 scheme 和 host 資訊,慎用或不用正則匹配,嚴格避免使用 contains、startsWith、endsWith、indexOf 等不精準函數。

  2. 在 mPaaS 初始化之後,調用容器之前,設定 provider。

    H5Utils.setProvider(H5JSApiPermissionProvider.class.getName(), new H5JSApiPermissionProviderImpl());