登录时将前端连接到后端

时间:2016-01-05 22:24:30

标签: login yii2-advanced-app yii-components yii-url-manager

我在Yii2高级模板中有一个代码,当我从前端登录然后在后端连接时,我想建立一个链接,当我从后端登出它回到前端时,我该怎么做? 这是我的comon / config / main.php文件

<?php
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'components' => [
    'cache' => [
        'class' => 'yii\caching\FileCache',
    ],
     'urlManager' => [
    //'class' => 'yii\web\urlManager',
    'enablePrettyUrl' => false,
    'showScriptName' => true,
    'baseUrl' => '/backend/web',
    ],        
    'urlManagerFrontEnd' => [
    'class' => 'yii\web\urlManager',
    'baseUrl' => '/frontend/web',
    'enablePrettyUrl' => false,
    'showScriptName' => true,
    ]
],

];

这是我前端的siteController

<?php
namespace frontend\controllers;

use Yii;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use yii\helpers\Url;
use backend;

/**
  * Site controller
   */
class SiteController extends Controller
{
   /**
   * @inheritdoc
    */
public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'only' => ['logout', 'signup'],
            'rules' => [
                [
                    'actions' => ['signup'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'actions' => ['logout'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout' => ['post'],
            ],
        ],
    ];
}

/**
 * @inheritdoc
 */
public function actions()
{
    return [
        'error' => [
            'class' => 'yii\web\ErrorAction',
        ],
        'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',
            'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
        ],
    ];
}

/**
 * Displays homepage.
 *
 * @return mixed
 */
public function actionIndex()
{
    return $this->render('index');
}

/**
 * Logs in a user.
 *
 * @return mixed
 */
public function actionLogin()
{
    if (!\Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->goBack();
    } else {
        return $this->render('login', [
            'model' => $model,
        ]);
    }
}

/**
 * Logs out the current user.
 *
 * @return mixed
 */
public function actionLogout()
{
    Yii::$app->user->logout();

    return $this->goHome();
}

/**
 * Displays contact page.
 *
 * @return mixed
 */
public function actionContact()
{
    $model = new ContactForm();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
        } else {
            Yii::$app->session->setFlash('error', 'There was an error sending email.');
        }

        return $this->refresh();
    } else {
        return $this->render('contact', [
            'model' => $model,
        ]);
    }
}

/**
 * Displays about page.
 *
 * @return mixed
 */
public function actionAbout()
{
    return $this->render('about');
}

/**
 * Signs user up.
 *
 * @return mixed
 */
public function actionSignup()
{
    $model = new SignupForm();
    if ($model->load(Yii::$app->request->post())) {
        if ($user = $model->signup()) {
            if (Yii::$app->getUser()->login($user)) {
                return $this->goHome();
            }
        }
    }

    return $this->render('signup', [
        'model' => $model,
    ]);
}

/**
 * Requests password reset.
 *
 * @return mixed
 */
public function actionRequestPasswordReset()
{
    $model = new PasswordResetRequestForm();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        if ($model->sendEmail()) {
            Yii::$app->session->setFlash('success', 'Check your email for further instructions.');

            return $this->goHome();
        } else {
            Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
        }
    }

    return $this->render('requestPasswordResetToken', [
        'model' => $model,
    ]);
}

/**
 * Resets password.
 *
 * @param string $token
 * @return mixed
 * @throws BadRequestHttpException
 */
public function actionResetPassword($token)
{
    try {
        $model = new ResetPasswordForm($token);
    } catch (InvalidParamException $e) {
        throw new BadRequestHttpException($e->getMessage());
    }

    if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
        Yii::$app->session->setFlash('success', 'New password was saved.');

        return $this->goHome();
    }

    return $this->render('resetPassword', [
        'model' => $model,
    ]);
}

/*public function goBack($defaultUrl = null)
{
    if(is_null($defaultUrl)) {
        $defaultUrl = Yii::$app->request->baseUrl; // ganti dibagian ini ndu
    } 
    return Yii::$app->getResponse()->redirect(Yii::$app->getUser()->getReturnUrl($defaultUrl));
}*/
 }

与后端的siteController相同

0 个答案:

没有答案