2014-12-12 3 views
0

Я искал учебники и читал официальный учебник yii об API REST и аутентификации, но я просто не могу понять, как аутентифицировать пользователя через REST API. Как настроить его. Я использую расширенный шаблон Yii 2.0.1. Я пытался это сделать, но я не уверен, правильно ли я делаю это правильно и как правильно аутентифицировать пользователя.Проверка аутентификации YEST2 Yii2

Ниже приведен мой код и он возвращает правильные данные. Но я не уверен, что это правильный путь. Поскольку в другом контроллере мне нужно проверить, зарегистрирован ли пользователь для доступа к действиям.

<?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(); 
    } 

} 
?> 

ответ

4

Я думаю, что процесс входа в систему будет примерно таким же. Только структура Url отличается при использовании REST API, но то, что вы делаете в действиях, зависит от вас. Любой, где в вас приложения вы можете проверить, если пользователь вошел в систему или нет с этим кодом:

\Yii::$app->user->isGuest 

Он возвращает истину, если пользователь не зарегистрирован в противном случае неверно.

И если вам необходимо ограничить доступ к действиям, то вы можете использовать Access Control Filter или Role Based Access Control

Опять я думаю Access Control Filter реализация должна быть такой же, даже для REST API.

Смежные вопросы