问题描述:
后台框架thinkphp,一次在vue编译的项目中,在微信公众号内直接打开【众所周知,在微信公众号内需要授权码access_token】,此时授权完成回调时跳转到页面通过后台无法获取到 #号之后的所有参数,如图:
后台输出:
这个不用查找,因为php是真的无法获取,这是规则问题。
因此为了解决必须这样的方式访问,我们必须理清思路:
1、访问时先把地址存起来(怎么才可以获取到#的地址)
2、授权完毕,跳转到存起来的地址就完成了
解决方法:
相对于第2点来说,后台操作不用说了,就一句跳转代码,太简单了,主要说是第1点。
我那时直接提供两种方法给后台人员(虽然我写过后台代码,但现在安排我做前端,后台就不是我的工作范围内了,呵呵)
第一种:没授权访问时,直接渲染一个页面,页面使用js获取地址,例如:localtion.href ,然后存储在本地或存放后台接口等【session,cookies等都可以】,然后由前端发起微信授权请求,授权完成回调,后台获取或直接渲染vue项目(这种情况,先获取本地是否存在存储路径,存在则前端直接重新跳转,否则正常启动),这种情况非常不友好,在我的预料之内,直接让我说第二种,哈哈
第二种:路由替换,访问时直接采用这种方式:www****/index/index.html?wxkey=/share/1,后台可以获取,然后直接wxkey=替换成 # 然后存储起来,授权完成,跳转到该存储地址方可【简单点就是后台格式化地址】
其他的,我的水平有限,无法想到,所以直接让后台按照我的思路来,他不干也得干,不然要么history路由模式和后台路由冲突(改动更大),要么后台想办法解决,就是这么简单。。。
欢迎留言啊!!!