redirect_uri中带有#号时,跳转地址会被截断处理?

2022/02/21
提问

自建应用授权后的redirect_uri中带有#号时,无法跳转到正常的uri地址,会在#号前截断,导致无法进入企业应用。

示例redirect_uri: http://demo.test.com/#/login_back/wx,在实际配置中,该地址经过了url编码,http%3A%2F%2Fdemo.test.com%2F%23%2Flogin_back%2Fwx。

最终oauth2的链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=123456789&redirect_uri=http%3A%2F%2Fdemo.test.com%2F%23%2Flogin_back%2Fwx&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect


期望跳转地址:http://demo.test.com/#/login_back/wx?code=CODE&state=STATE

实际跳转地址:http://demo.test.com/?code=CODE&state=STATE

回答·2
2023/07/19

// https://www.npmjs.com/package/qs

yarn add qs


import qs from 'qs'

const search = qs.parse(window.location.search, { ignoreQueryPrefix: true })

console.log(search)

赞同
评论
2022/02/21
提问者认同了该回答

这个好像是企业微信那边默认就截取的判断就是http到第一个#号,之前有遇到过


我们有非官方的企业微信产品及开发同行群ToB Dev,加微信li570467731拉你进群
赞同 5
评论 2
2022/02/21
的确,redirect_uri中的#号也按url编码了,还是企微那边截取处理了
赞同
回复
回复 2023/01/11
我遇到跟您一样的问题,请问您解决了吗
赞同
回复
你还未登录,请先登录