2018-09-10 16:45:30 272次浏览 3条回答 0 悬赏 20 金钱

需要实现的正常操作流程: 1、点击论坛页(无需授权,forum/index) 2、点击个人中心(需要授权,member/index) 3、跳转至用户登录(user/login) 4、点击下方第三方授权(如微信 user/auth?client=wechat) 5、微信授权跳转至个人中心(member/index);

目前(采用Yii2和yii-wx),通过Yii::$app->request->getUrl()Yii::$app->request->referrer都无法实现跳转至个人中心页面。而是跳转至user/login页面,或者forum/index页面

以下是BaseController控制器代码:

//发送网页授权
protected function oauth()
    {
        $conf = Yii::$app->params['wx']['mp'];

        //$url = Yii::$app->request->getUrl();
        $url = Yii::$app->request->referrer;

        //var_dump($url);die;
        $callback = Yii::$app->urlManager->createAbsoluteUrl(['/wechat/oauth', 'url' => $url]);

        $conf['oauth']['callback'] = urlencode($callback);
        $app = new Application(['conf' => $conf]);
        $oauth = $app->driver('mp.oauth');

        if (Yii::$app->user->isGuest) {
            $oauth->send();
            die;
        }
    }

  • 回答于 2018-09-11 15:07

    在login页面把上一个页面保存到session或者cookie,授权登入完成判断 session或者cookie中是否存在,存在销毁变量然后跳转就可以了

    , 觉得很赞
  • 回答于 2018-09-13 17:55

    在login页面点击第三方授权时,获取当前页面的前一个页面referrer,urlencode后拼接到授权链接后,授权成功后,在回调接口再获取对应参数,重定向

  • 回答于 2018-09-18 13:56

    Url::remember();
    叫我雷锋

    1 条回复
    回复于 2018-09-18 17:18

    雷洪你好~~

您需要登录后才可以回答。登录 | 立即注册
mydzoo
主管

mydzoo

注册时间:2017-01-05
最后登录:2018-11-07
在线时长:27小时4分
粉丝1
金钱430
威望0
积分700

热门问题