在auth之后将用户重定向到上一页(yii2)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在auth之后将用户重定向到上一页(yii2)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_304_4@ 我有一个主控制器,其他的继承.代码是这样的

public function inIT()
{
    $this->on('beforeAction',function ($event) {
        ...

        if (Yii::$app->getUser()->isGuest) {
            $request = Yii::$app->getRequest();
            // dont remember login page or ajax-request
            if (!($request->getIsAjax() || strpos($request->getUrl(),'LOGin') !== false))                  {
               Yii::$app->getUser()->setReturnUrl($request->getUrl());
              }
           }
        }
        ...
    });
}

它适用于所有页面,但带有验证码的页面除外.所有带验证码的页面都被重定向到这样的东西 – / captcha /?v = xxxxxxxxxxxxxx

如果对象被记录Yii :: $app-> getRequest(),那么我看到对于具有验证码的页面,它被使用了两次.第一次对象是corect,第二次我用captcha看到对象.
如何用yii解决这个问题?有没有机会不跟踪验证码的请求?

解决方法

认(生成)控制器使用如下所示的内容

public function actions()
{
    return [
        'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',],];
}

你的控制器是否包含这样的东西?

这意味着有一个动作“验证码”用于显示验证码(它返回图像).当您有一个显示验证码的页面时,将在您要返回的页面之后调用该图像.因此,访问的最新页面是具有验证码的页面.

我想你必须过滤掉这个动作.

另一种可能是使用认的$controller-> goBack()方法.我认为这认处理returnUrl的注册.

参考:Class yii\web\Controller

脚本宝典总结

以上是脚本宝典为你收集整理的在auth之后将用户重定向到上一页(yii2)全部内容,希望文章能够帮你解决在auth之后将用户重定向到上一页(yii2)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。