wxoauth-修复授权登录后微信内返回按钮报"redirect_url 10003"

在接入wxoauth多域名授权后,有朋友会发现授权登录之后跳转到你的业务系统界面后,用户再点击返回键(安卓)、微信后退按钮(IOS),则会出现“微信登录失败 1003”的错误,这是因为微信本身的返回不刷新页面的机制导致的。

错误页面

下面为大家带来解决方案:

此方法需要由一定的代码阅读能力才能进行,如果您不具备此基础,请提交工单联系客服解决或者让其他开发者进行维护修改。

解决的方案是在授权登录跳转后的页面使用wx.closewindow()的方法,先监听用户是否点击后退按钮(键),紧接触发函数不让它再次跳转到wxoauth授权页面,即可修复这个问题。下面上代码:

1.引入jweixin-1.0.0.js 即 微信JS-SDK

<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

2.配置参数:

jssdkconfig.jsApiList = [  'closeWindow'];

3.在wx.config执行后的位置添加后退按钮过滤监听函数:

<script>

    pushHistory();

    window.addEventListener("popstate", function(e) {

        //点击返回按钮时触发关闭页面,避免再次回到wxoauth授权页面导致报“redirectUri错误”(可以自定义操作)

      wx.closeWindow();

    }, false);

    window.onbeforeunload = function() {、

            return;

        }

    function pushHistory() {

        var state = {

            title: "title",

            url: ""

        };

        window.history.pushState(state, "title", "");

    }

上述便完成了点后退按钮时出现1003的错误。

推荐阅读更多精彩内容