防止回调地狱,导致code无限叠加产生鉴权失败的问题

This commit is contained in:
aixianling
2022-12-29 15:24:40 +08:00
parent 225b369090
commit 3130479d39

View File

@@ -202,15 +202,19 @@ let timer = {}
* https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID#wechat_redirect
* @param params
*/
const oauth2Weixin = params => qs.stringifyUrl({
const oauth2Weixin = params => {
const redirect = qs.parseUrl(location.href)
delete redirect.query.code
return qs.stringifyUrl({
url: "https://open.weixin.qq.com/connect/oauth2/authorize",
query: {
response_type: 'code',
redirect_uri: encodeURIComponent(location.href),
redirect_uri: qs.stringifyUrl(redirect),
...params
},
fragmentIdentifier: "wechat_redirect"
})
})
}
export const wxwork = {
state: () => ({
agentSignURL: "",
@@ -287,12 +291,9 @@ export const wxwork = {
dispatch("agentSign", {corpId, suiteId}).then(() => excute(true)).then(() => resolve())
} else reject("URL缺少必要参数(corpId)")
})
} else new Promise((resolve, reject) => {
const {appid} = params
if (!!appid) {
} else new Promise(() => {
const oauthURL = oauth2Weixin(params)
location.replace(oauthURL)
} else reject("URL缺少必要参数(appid)")
})
}
return excute()