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

Авторизация и REST

Добавлено: 2016.02.08, 11:54
X-Loading
Коллеги, добрый день!

Разрабатываю я в дополнение к сайту на Yii2 гибридное мобильное приложение (AngularJS - Ionic).
Сделал в Yii2 отдельное приложение для REST API, нужные данные в JSON возвращаются - всё замечательно. ;)

Но вот с авторизацией мобильного клиента в REST в документации Yii2 и всех имеющихся обсуждениях царит какая-то анархия, с которой и хотелось бы разобраться.

Что хотелось бы:
1) Иметь возможность из приложения выполнить вход по логину/паролю или же через пару AuthClient-ов (например, FB + Google).
2) В приложении хранить валидные данные для доступа (как я понимаю, это будет в любом случае токен + хотелось бы использовать ID устройства, это UUID кажется) в течение N дней (например, 60).
3) В процессе использования приложения с определённой периодичностью (скажем, раз в 7-10 дней) обновлять токен на сервере и возвращать приложению. В противном случае, завладев токеном и подделав UUID можно было бы использовать чужие данные до 60 дней.
4) Пользователь должен иметь возможность быть одновременно залогиненным с разных устройств.

Возникающие вопросы:
1) Насколько я понял, принципиальной разницы между использованием HttpBearerAuth или QueryParamAuth для моего случая нет. Это действительно так?
2) Далее я обратил внимание, что многие начинают для этих целей внедрять в приложение собственный Oauth2-сервер на Yii2 (типа https://github.com/Filsh/yii2-oauth2-server). Это необходимо и оправдано?
3) Как и где функционально вы бы реализовали пп. 2-3-4 требований? Хотя бы на уровне общей структуры бэкенда: в каких контроллерах-моделях.

Может кто-то уже делал что-то подобное и сможет поделиться частичкой мудрости в виде кода? Или возможно что-то из моих требований явно лишнее? :roll:

Re: Авторизация и REST

Добавлено: 2017.03.24, 21:45
NikVolkov
Доброго дня!

У меня похожие вопросы.

К чему пришли?

Re: Авторизация и REST

Добавлено: 2017.04.04, 17:22
Bezlepkin
HttpBearerAuth передает токен в заголовке, а значит безопасней.

Re: Авторизация и REST

Добавлено: 2017.05.31, 12:54
vitovt
Подниму тему авторизации, чтобы не плодить кучу тем, а так как поиск по коротким запросам не работает то может быть тема уже поднималась.

Вопрос авторизации по ключам вроде бы простой и с другой стороны не совсем.

Делаю авторизацию по JWT

Для работы можно поставить вот этот пакет - https://github.com/sizeg/yii2-jwt

Все вроде бы хорошо, генерировать ключ умеем, проверять при каждом запросе к REST тоже.

Но! Говорят надо делать два ключа - один auth_token второй refresh_token

Вопрос как и для чего, какой из них хранить, а какой нет? По какому валидировать?

Второй вопрос - извлечение информации их токена. Суть JWT в том, что сам токен - самодостаточен, из него можно вытянуть, например, ID пользователя \ клиента и не лезть в базу для сверки при каждом запросе. Вопрос как?

Re: Авторизация и REST

Добавлено: 2018.07.11, 10:30
fedornabilkin
Хм, кто-то разобрался с этим вопросом? Возникла задача перенести сайт на другой домен. На данный момент работают два сайта с одной базой с разных доменов. Теперь боссы хотят редиректить всех со старого сайта, кто еще не перешел на новый и надо это делать с авторизацией на новом сайте.
Т.е. если юзер был авторизован на старом сайте, перекинуть его авторизованным на новый сайт. Возможно ли такое сделать, если сессии хранятся в redis?

Re: Авторизация и REST

Добавлено: 2018.07.11, 13:59
andku83
можно использовать что-то подобное