2018-09-10 16:45:30 1862次浏览 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
最后登录:2022-03-29
在线时长:53小时40分
  • 粉丝4
  • 金钱2075
  • 威望10
  • 积分2705

热门问题