开发者社区> 问答> 正文

在jsapi鉴权中,调用dd.config方法总是报errorCode: "9"

image.png

在jsapi鉴权中,调用dd.config方法总是报errorCode: "9"
errorMessage: "无效的签名参数",不知道啥问题

展开
收起
游客5wjbvn73ehq74 2024-02-28 19:42:13 98 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    JSAPI 鉴权设置方法

    签名参数无效

    若无问题,稍后网络再试

    mPaaS 建议所有的 JSAPI 访问都需要添加访问控制,目前可以通过设置 provider 的方式添加访问控制。

    设置自定义权限控制 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 等不精准函数。

    在 mPaaS 初始化之后,调用容器之前,设置 provider。
    H5Utils.setProvider(H5JSApiPermissionProvider.class.getName(), new H5JSApiPermissionProviderImpl());

    参考;https://help.aliyun.com/document_detail/448476.html?spm=a2c4g.102667.0.i3

    2024-03-02 21:09:47
    赞同 1 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载