myks92
@myks92
Нашёл решение — пометь вопрос ответом!

Yii Как в Rest API сделать аутентификацию из backend или frontend?

Всем привет! Хочу использовать api в проекте, как внутреннего пользования. Возможно, для внешнего пользования в последствии...

Все настроил по вебинару от Елисеева Дмитрия (https://www.youtube.com/watch?v=jDj_JggZXsU ).

Все работает, но только не хочется каждый раз в ручную писать токен или передавать логин или пароль, если я делаю с backend или frontend запрос. Можете подсказать, как использовать можно api в связке с backend или frontend ? Например, чтобы после авторизации на backend или frontend и, в последствии, использовании запросов к api не требовал вводить логин и пароль, а так же не передавать логин и пароль или токен в ajax запросе.

Возможно требуется полностью отказаться от авторизации в сессии и куки? Либо мне не стоит заморачиваться над api для реализации внутренних выборок через ajax. Создать для этого общий контроллер и там получать данные. Что скажете?
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
использовании запросов к api не требовал вводить логин и пароль, а так же не передавать логин и пароль или токен в ajax запросе.

Вы делаете ajax запрос, как сервер Вас идентифицирует если Вы ничего не передадите?

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

А зачем Вы вручную их передаете? По идее Вы на клиенте 1 раз авторизовались, получили ключ (токен, пару логин пароль, что угодно). Сохранили его куда-то (webStorage) и добавляете его к запросам. Где тут ручная работа? Видимо Вам нужен метод, который автоматически добавляет токен к ajax запросам. Сделайте такой метод и стройте запросы через него.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Я не смотрел видео, но проверить залогинен ли пользователь можно так:
if(!Yii::$app->user->isGuest) {
...
}


Если нужно узнать кто именно залогинен, то делается это так:
if (Yii::$app->user->identity->id == 'username') {
...
}


Т.е. в контроллере можно проверить, залогинен ли пользователь и кто именно (есть ли у него права на API), если нет - проверять токен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы