问题已找到解决方案。
把前端逻辑与重定向放到后端,通过接口请求做逻辑301重定向可以解决该问题
代码片段: https://developers.weixin.qq.com/s/A1pfVqmC79fz
授权所需测试号:
因需要维护多个公众号,不同入口的授权,整合了一个授权拼接页
授权拼接页功能:拼接微信H5授权链接,重定向至微信授权链接进行授权
拼接页代码:
import qs from 'qs'
import {request} from '@j/request'
import {tools} from '@j/tools'
function init(e) {
var search = tools.getUrlData(e.search) //获取所有&后面的参数包括重定向
queryAppId({ //获取appid
url: e.href,
srcChannel: search.wxChannel,
}).then(({appid}) => {
var target = search.redirectUrl //获取重定向链接 包括?
var scope = search.scope //获取授权类型
delete search.redirectUrl //删除当前页面参数
delete search.wxChannel //删除当前页面参数
delete search.scope
var curUrl = `${e.origin}${target}&${qs.stringify(search)}` //拼接重定向链接 域名 + 重定向地址 + 参数
try {
curUrl = decodeURIComponent(curUrl)
} catch(error) {
alert('参数中请勿使用非UTF8编码字符组合')
}
curUrl = encodeURIComponent(curUrl) //转义
location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${curUrl}&response_type=code&scope=snsapi_${scope}&state=23432#wechat_redirect`)
})
}
问题描述:
通过拼接页重定向至微信授权链接,无法在页面栈中去除拼接页的历史记录,入口或授权链接页返回上一页会重新进入拼接页,然后无限循环
(会无限循环:微信H5,开发者工具H5,部分手机小程序,开发者工具小程序webview)
(会停留在拼接页不再授权,显示空白页:部分手机小程序)
点击进入的链接是我们做的授权拼接页
通过replace方法重定向到微信授权链接,但是返回依旧能返回到授权拼接页导致无限循环
楼主怎么弄呀 我不会 能不能教教
我也出现这种情况
--↓↓👍点赞是回答的动力哦
解决了吗
大佬 解决了吗 我也有这个问题
楼主解决了吗 我也遇到了相同的问题
问题解决了嘛?
怎么解决这个问题?各位大佬
解决了吗?
麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点
不是的话给一个有这个问题的链接,我们debug看看
H5都有这个问题,主要这个问题并不是流程上的bug,而是返回会回到我们自己写的拼接微信授权的公共页面导致无限循环,但是明明用的location.replace