Страница 1 из 1

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

Добавлено: 2019.06.14, 16:47
YafusOriginal
Добрый день!

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

Я создал модель 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
мне показывает, что пользователь по прежнему гость.

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

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

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