Laravel Passport предоставляет API-токен с сеансом или ограничивает доступ к js-файлам - PullRequest
0 голосов
/ 06 июня 2018

Проблема
Я использую вызов jQuery AJAX для доступа к API моего приложения.Поскольку мои Javascript файлы технически доступны для общественности, я не могу поместить учетные данные API в этот файл.Веб-маршруты, которые обращаются к защищенному API, защищены middleware, который проверяет, есть ли у пользователя доступ.Технически, можно получить доступ к js файлам, указав правильный url.Страницы администратора по-прежнему будут недоступны, но теперь можно получить доступ к API.

Вопрос
Я хотел бы знать, есть ли способ либо
A) Используйте куки-файл сессии, чтобы получить пользователя и проверить, является ли этот пользователь администратором.
или
B) (Предпочитается) Сделать файлы js доступными только для веб-маршрутов, которые их используют (в моем случае, для администраторских маршрутов)
или
C) Другой вариант, которым я являюсьявно не видя, это решило бы мою проблему.

Я использую паспортную аутентификацию Laravel API для маршрутов API.

PS: ввод учетных данных каждый раз вручную, не вариант.Эти маршруты, как правило, должны быть доступны быстро.

1 Ответ

0 голосов
/ 07 июня 2018

Если я понимаю ваш вопрос ... вы можете передать всю информацию, которая вам нужна, даже информацию, которая содержится в сеансе, в запросе ajax, единственное, что вам понадобится, - это какое-то промежуточное программное обеспечение в бэкэнде, котороепроверьте, что сеанс (любая переменная) был сгенерирован сервером (ваш бэкэнд).

Алгоритм будет аналогичен алгоритму, который проверяет, был ли сервер генерирует токен, который пользователь использует для доступа к данным.Вы понимаете идею?Сохраните в базе данных «учетные данные сеанса», которые вы хотите проверить, является ли пользователь администратором.

Чтобы ответить на другой вопрос, вам потребуется файл php, который обрабатывает запрос, и после этого, если у пользователя естьразрешения на доступ к файлу js, затем вы его обслуживаете.

Иногда я использую аналогичный алгоритм для создания системы слежения и подачи белого пикселя (файл .jpg), единственное изменение - это то, что я надеваюне проверяйте учетные данные.

Позаботьтесь о том, чтобы не забыть добавить соответствующий заголовок в ваш файл (файл с файлом js) header ("Content-Type: application / javascript");

Я не рекомендую использовать информацию о сеансе для проверки всего этого, потому что могут быть проблемы с безопасностью.Если вы можете, используйте токен, сгенерированный паспортом, чтобы убедиться, что пользователь является администратором.

Надеюсь, я поясню в объяснении, и вы поймете идею.:)

...