Аутентификация на сайте с использованием токена

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
YafusOriginal
Сообщения: 1
Зарегистрирован: 2019.06.14, 16:24

Аутентификация на сайте с использованием токена

Сообщение YafusOriginal » 2019.06.14, 16:47

Добрый день!

Задача стоит следующая:
Пользователь входит на сайт если он был не авторизован он перенаправляется на сайт аутентификации, где после того как внесет логин и пароль он редиректится обратно с кодом аутентификации. На сервере я формирую запрос с кодом аутентификации на еще один сайт, где получаю специальный токен, по которому потом пользователь будет входить на сайт.
Токен я занес в сессию. И здесь начинаются сложности.

Я создал модель User со следующим методом:

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

    public static function findIdentityByAccessToken($token, $type = null)
    {
        if ($token !='') {
            return new static();
        }
        return null;
    } 
Потом я пытаюсь залогинить пользователя:

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

 Yii::$app->user->login(User::findIdentityByAccessToken(Yii::$app->session->get('token')), 3600);
Потом в экшене, в котором логиню, делаю редирект на главную страницу приложения.

И при проверке методом

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

Yii::$app->user->isGuest
мне показывает, что пользователь по прежнему гость.

Прошу помощи. Уже несколько дней сижу и не могу понять причину этого.

Аватара пользователя
ElisDN
Сообщения: 5234
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Аутентификация на сайте с использованием токена

Сообщение ElisDN » 2019.06.15, 10:19

При вызове login(...) фреймворком в сессию записывается значение getId() и потом Yii::$app->user->isGuest по нему дёргает findIdentity($id).

Ответить