在调试外部系统联登报错uni-id-illegal-request
前情说明: 使用别人的云函数URL和appId时, 返回正确
切换到我的URL和appId之后就报错: uni-id-illegal-request
可以确定java代码没有问题.
public static void main(String[] args) throws IOException {
String url = "https://fc-mp-317bc73c-3851-46e9-acb8-90f9d8227abf.next.bspapp.com/uni-id-co/externalRegister";
Map<String,Object> params = new HashMap<>();
params.put("externalUid","15456125");
params.put("nickname","kjkfe");
params.put("username","sef");
params.put("avatar","https://d187uamsy6q6zw.cloudfront.net/2020/03/27/312bbb3f-7231-4083-8ed4-d941e814e3cd.jpg");
params.put("gender", 0);
Map<String,String> info = new HashMap<>();
info.put("uniPlatform", "web");
info.put("appId", "__UNI__3FB2D38");
Map<String,Object> data = new HashMap<>();
data.put("params",params);
data.put("clientInfo",info);
Response response = HttpUtils.post(url, com.alibaba.fastjson.JSON.toJSONString(data));
logger.info("response: {}",response);
}
public static Response post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(url)
// .header("uni-id-nonce", param.get("nonce"))
// .addHeader("uni-id-timestamp", param.get("timestamp"))
// .addHeader("uni-id-signature", param.get("sign"))
// .addHeader("Content-Type", "application/json")
// .addHeader("Cache-Control", "no-cache")
.header("Unicloud-S2s-Authorization", "CONNECTCODE abcdefghijklmnyut")
.addHeader("Content-Type", "application/json")
.post(body)
.build();
Response response = client.newCall(request).execute();
if(response.isSuccessful()){//回调的方法执行在子线程。
logger.info("kwwl" + "response.code()=="+response.code());
logger.info("kwwl" + "response.body().string()=="+response.body().string());
}
return response;
}
下面是uni-config-center -> uni-id -> config.json的配置文件
{
"passwordSecret": "4355656",
"tokenSecret": "78978979",
"requestAuthSecret":"abcdefghijklmnyut",
"passwordStrength": "",
"tokenExpiresIn": 7200,
"tokenExpiresThreshold": 1600,
"passwordErrorLimit": 6,
"bindTokenToDevice": false,
"passwordErrorRetryTime": 3600,
"autoSetInviteCode": false,
"forceInviteCode": false,
"preferedAppPlatform": "app",
"app": {
"tokenExpiresIn": 2592000,
"oauth": {
"weixin": {
"appid": "填写来源微信开放平台https://open.weixin.qq.com/创建的应用的appid",
"appsecret": "填写来源微信开放平台https://open.weixin.qq.com/创建的应用的appsecret"
},
"apple": {
"bundleId": "苹果开发者后台获取的bundleId"
}
}
},
"web": {
"oauth": {
"h5-weixin": {
"appid": "微信浏览器内微信登录,所用的微信公众号appid",
"appsecret": "微信公众号后台获取的appsecret"
},
"web-weixin": {
"appid": "手机微信扫码登录,所用的微信开放平台(https://open.weixin.qq.com/)-网站应用的appid",
"appsecret": "微信开放平台-网站应用的appsecret"
}
}
},
"mp-weixin": {
"oauth": {
"weixin": {
"appid": "微信小程序登录所用的appid、appsecret需要在对应的小程序管理控制台获取",
"appsecret": "微信小程序后台获取的appsecret"
}
}
},
"mp-alipay": {
"oauth": {
"alipay": {
"appid": "支付宝小程序登录用到的appid、privateKey请参考支付宝小程序的文档进行设置或者获取,https://opendocs.alipay.com/open/291/105971#LDsXr",
"privateKey": "支付宝小程序登录用到的appid、privateKey请参考支付宝小程序的文档进行设置或者获取,https://opendocs.alipay.com/open/291/105971#LDsXr"
}
}
},
"service": {
"sms": {
"name": "应用名称,对应短信模版的name",
"codeExpiresIn": 300,
"smsKey": "短信密钥key,开通短信服务处可以看到",
"smsSecret": "短信密钥secret,开通短信服务处可以看到"
},
"univerify": {
"appid": "__UNI__3FB2D38",
"apiKey": "1b691258e99f46cf2af55754dc3fe649",
"apiSecret": "e7ddaa8b7fb7268ebe1edabbf5685d98"
}
}
}
uni-config-center -> uni-cloud-s2s -> config.json的配置文件
{
"type": "connectCode",
"connectCode": "abcdefghijklmnyut"
}
6 个回复
9***@qq.com
这个版本好像是有bug,报错提示“没有配置web.oauth.weixin-h5”, 实际上这个初始化的starter模版里根本就没有weixin-h5,只有一个h5-weixin,即使配置上也没用,我今天也是遇到你这个问题。
9***@qq.com
楼主,找到问题了,是因为云函数配置好之后没有上传!
阿落 (作者)
这个不应该, 我都重新上传过好多次. 还换项目, 新建项目都试过了, 都是一样的错误
2023-04-12 09:11
阿落 (作者) - 不介绍了吧 不太光彩
放弃了, 折腾了好几天, 无论怎么弄都是报这个错, 上传了无数次, 删除项目, 再新建项目, 换项目, 请教联登成功的人. 所有能弄的都弄了. 你猜怎么着, 哎, 我就是报这个错, 不变. 拉J8倒
DCloud_uniCloud_CRL
一般出现这个错误有以下两种情况:
2023-04-13 11:51
t***@961.com
回复 DCloud_uniCloud_CRL: 签名字段不是params字段是什么意思
2023-05-10 13:49
DCloud_uniCloud_CRL
回复 t***@961.com: 计算签名要用 params参数来签名
2023-05-10 19:46
DCloud_uniCloud_CRL
使用
uni-cloud-s2s
需要uni-id-pages
版本大于 1.1.106***@qq.com
帮忙看看这个问题:https://ask.dcloud.net.cn/question/172223?item_id=243055&rf=false
2023-06-16 16:36
1***@qq.com
真你麻痹的麻烦,弄了一天,终于弄好了,弄完了还是蒙的。
2***@qq.com
大家有总结出是什么问题导致的吗?我的一个服务期,之前还是好好的,后来突然就提示这个请求不合法。同样的请求参数和url放到其他之前成功联登的服务器,又是可以正常联通的。还跟楼上其他朋友有个类似的情况,刚开始配置的时候提示请求不合法,但是第二天在请求竟奇迹般可以了。到了最近又突然不行了。真奇葩,我到uni-cloud官方QQ群问了也没谁给个回答,真郁闷。
4***@qq.com
有找到原因吗?
2023-11-03 16:28