钉钉鉴权后路由跳转调用定位(需要鉴权)报错 如下
13:32:28.240 [http-nio-8066-exec-6] INFO c.a.w.c.c.CommonController -
[uploadDdLog,148] - 钉钉日志:{"logContent":"===钉钉API鉴权参数!URL?somCode=100076&type=1"}
13:32:29.031 [http-nio-8066-exec-9] INFO c.a.w.c.c.CommonController -
[uploadDdLog,148] - 钉钉日志:{"logContent":"===钉钉API鉴权异常,部分钉钉功能将无法使用!{\"errorCode\":3,\"errorMessage\":\"Code:52013 - Message:签名校验失败,nonce:[e7715310-fe92-4c05-bff9-5cae1fad7d36],timestamp:[1663911148],url:[URL/ddScanCode?tenantId=1@@somCode=100076&u=123&b=210625296&avatar=https://static-legacy.dingtalk.com/media/lQLPDhqqSJ8neorNAgzNAgywIly17J928UoZji-WN7S5nQ_524_524.png@100h_100w_0e&t=1663911138740],ticketList:[2G4CRZ8Qdb******************************************************************s5k7h5yqjn]\"}"}
参考
钉钉开放文档——JSAPI鉴权
1、签名地址
文档重点提了签名地址需要保持一致 排查出原因是 两次授权的地址不同 导致不行
跳转前将地址替换掉
// 跳转到点检详情页面(点检页面需要钉钉授权位置做图片水印,直接this.$router.push时授权签名有问题)
if(dd.env.platform!="notInDingTalk"){
dd.biz.navigation.replace({
url: window.location.protocol+"//"+window.location.host+"/mobile/computer-order-review?crcCode="+crcCode+"&type="+this.type+"&u="+this.userName+"&crcStatus="+crcStatus,// 新的页面链接
})
}else{
this.$router.push({
path: "/mobile/computer-order-review",
query: {
crcCode: crcCode,
type: this.type,
u: this.userName,
crcStatus: crcStatus
}
})
}
// 跳转到点检详情页面(点检页面需要钉钉授权位置做图片水印,直接this.$router.push时授权签名有问题)
if(dd.env.platform!="notInDingTalk"){
dd.biz.navigation.replace({
url: window.location.protocol+"//"+window.location.host+"/mobile/computer-order-review?crcCode="+crcCode+"&type="+this.type+"&u="+this.userName+"&crcStatus="+crcStatus,// 新的页面链接
})
}else{
this.$router.push({
path: "/mobile/computer-order-review",
query: {
crcCode: crcCode,
type: this.type,
u: this.userName,
crcStatus: crcStatus
}
})
}
2、异步触发
针对二次跳转,如扫码事件,第一次跳转首页鉴权后,跳转目标页(需鉴权)失败,因为是异步执行,第一次鉴权未完成,异步第二次目标页,修改第一次鉴权方法
拓展
苹果手机正常 安卓不行问题(缓存)
手机禁止定位(可能授权不成功)
检查确认获取的jsapiticket是否正确或者过期
端口号
。。。