【发布时间】:2014-12-15 19:08:15
【问题描述】:
我一直在寻找教程并阅读了 yii 关于 REST API 和身份验证的官方教程,但我就是不知道如何通过 REST API 对用户进行身份验证。如何配置它。 我正在使用 Yii 2.0.1 高级模板。我一直在尝试这样做,但我不确定我是否做得对以及验证用户的正确方法是什么。
以下是我的代码,它返回正确的数据。但我不确定这是否是正确的方法。因为在另一个控制器中,我需要检查用户是否已登录才能访问操作。
<?php
namespace api\modules\backend\controllers;
use yii\rest\ActiveController;
use yii\filters\auth\CompositeAuth;
use yii\filters\auth\HttpBasicAuth;
use yii\filters\auth\HttpBearerAuth;
use yii\filters\auth\QueryParamAuth;
use Yii;
use dektrium\user\models\LoginForm;
use dektrium\user\models\User;
class UserController extends ActiveController
{
public $modelClass = "dektrium\user\models\User";
public function actionLogin()
{
$model = new LoginForm;
if ($model->load(\Yii::$app->getRequest()->post()) && $model->login()) {
//return $this->goBack();
echo \Yii::$app->user->identity->getAuthKey();
//echo json_encode(['a'=>Yii::$app->user->getId()]);
}
}
public function actionIndexx()
{
if (\Yii::$app->user->isGuest) {
throw new \HttpHeaderException();
}
echo \Yii::$app->user->getId();
}
}
?>
【问题讨论】: