Как добавить еще один useridentity?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
ninzzo
Сообщения: 339
Зарегистрирован: 2014.04.25, 07:29

Как добавить еще один useridentity?

Сообщение ninzzo » 2018.07.02, 20:44

В проекте есть авторизация

Код: Выделить всё

'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => false,
            'enableSession' => false,
        ],
Мне нужнаотдельная авторизация и регистрация для Driver еще.
Как это грамотно добавить ?
Что бы я мог сделать логин в одной форме и во второй.
И иметь:

Код: Выделить всё

\Yii::$app->user->identity.
и 
\Yii::$app->driver->identity.

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как добавить еще один useridentity?

Сообщение zelenin » 2018.07.02, 21:05

ninzzo писал(а):
2018.07.02, 20:44
И иметь:

Код: Выделить всё

\Yii::$app->user->identity.
и 
\Yii::$app->driver->identity.
добавить в конфиг driver в дополнение к user

Аватара пользователя
ninzzo
Сообщения: 339
Зарегистрирован: 2014.04.25, 07:29

Re: Как добавить еще один useridentity?

Сообщение ninzzo » 2018.07.02, 21:11

Добавил.

Теперь как изменить авторизацию в REST API контроллере

Код: Выделить всё

 public function behaviors()
    {
       ...
    unset($behaviors['authenticator']);
    $behaviors['authenticator'] = [
    'class' =>  HttpBearerAuth::className(),
    ];
       ...
Он авторизируется через User, а я хочу через Driver

Мой конфиг для api

Код: Выделить всё

'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => false,
            'enableSession' => false,
        ],
        'driver' => [
        	'class' => 'yii\web\User',
            'identityClass' => 'common\models\Driver',
            'enableAutoLogin' => false,
            'enableSession' => false,
        ],      
        'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                'login' => 'profile/login',
                'register' => 'profile/createq',
                'facebook' => 'profile/facebook',
                'retailer' => 'retail/retailer',
                ['class' => 'yii\rest\UrlRule', 'controller' => 'user', ],
            ],
        ],
нужyо что бы в retail/retailer авторизировался через User
а в driver/all (новый контроллер driver) через Driver

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как добавить еще один useridentity?

Сообщение zelenin » 2018.07.02, 21:15

ninzzo писал(а):
2018.07.02, 21:11
Теперь как изменить авторизацию в REST API контроллере

Код: Выделить всё

 public function behaviors()
    {
       ...
    unset($behaviors['authenticator']);
    $behaviors['authenticator'] = [
    'class' =>  HttpBearerAuth::className(),
    ];
       ...
Он авторизируется через User, а я хочу через Driver
установить компонент driver в поле user. В код-то не стесняйся заглядывать.

https://github.com/yiisoft/yii2/blob/ma ... Method.php

Аватара пользователя
ninzzo
Сообщения: 339
Зарегистрирован: 2014.04.25, 07:29

Re: Как добавить еще один useridentity?

Сообщение ninzzo » 2018.07.02, 21:43

Код: Выделить всё

    unset($behaviors['authenticator']);
    $behaviors['authenticator'] = [
    'class' =>  HttpBearerAuth::className(),
    'user'=>'driver'
    ];
ну точно не так)
А как?)

urichalex
Сообщения: 948
Зарегистрирован: 2015.08.07, 11:03

Re: Как добавить еще один useridentity?

Сообщение urichalex » 2018.07.02, 21:45

'user' => Yii::$app->driver

Аватара пользователя
ninzzo
Сообщения: 339
Зарегистрирован: 2014.04.25, 07:29

Re: Как добавить еще один useridentity?

Сообщение ninzzo » 2018.07.02, 21:50

Благодарю! Все работает)

Ответить