Проблема
Я использую вызов jQueryAJAX для доступа к API моего приложения. Поскольку мои файлы Javascript технически доступны для всех, я не могу поместить учетные данные API в этот файл. Веб-маршруты, которые обращаются к защищенному API, охраняются middleware, который проверяет, есть ли у пользователя доступ. Технически, можно было получить доступ к файлам js с правильным url. Страницы администратора по-прежнему будут недоступны, но теперь можно получить доступ к API.
Вопрос
Хотелось бы узнать, есть ли способ либо
A) Используйте файл cookie сеанса, чтобы получить пользователя и проверить, является ли этот пользователь администратором.
или
B) (Предпочтительно) Сделать файлы js доступными только для веб-маршрутов, которые их используют (в моем случае, для маршрутов администратора)
или
C) Другой вариант, который я явно не вижу, который решил бы мою проблему.
Я использую аутентификацию Laravel Passport API для маршрутов API.
PS: вводить учетные данные вручную каждый раз, это не вариант. К этим маршрутам, как правило, требуется быстро получить доступ.
есть только 2 роли, администратор и не админ, я проверяю роль с помощью промежуточного программного обеспечения для веб-маршрутов. Токены API и клиенты API находятся в таблицах, сгенерированных соответствующими паспортами.






Если я понимаю ваш вопрос ... вы можете передать всю информацию, которая вам нужна, даже информацию, которая находится в сеансе, в запросе ajax, единственное, что вам понадобится, это какое-то промежуточное программное обеспечение в бэкэнде, которое проверяет сеанс (любая переменная) была создана сервером (вашим сервером).
Алгоритм будет аналогичен алгоритму, который проверяет, был ли токен, который пользователь использует для доступа к данным, был сгенерирован сервером. Вы понимаете идею? Сохраните в базе данных «учетные данные сеанса», которые вы хотите проверить, является ли пользователь администратором.
Чтобы ответить на другой вопрос, вам нужен какой-то php-файл, который обрабатывает запрос, и после этого, если у пользователя есть разрешения на доступ к js-файлу, вы его обслуживаете.
Иногда я использую аналогичный алгоритм для создания системы отслеживания и обслуживания белого пикселя (файла .jpg), единственное изменение заключается в том, что я не проверяю учетные данные.
Позаботьтесь о том, чтобы не забудьте добавить соответствующий заголовок в свой файл (файл с файлом js) заголовок ("Content-Type: application / javascript");
Я не рекомендую использовать информацию о сеансе для проверки всего этого, потому что могут возникнуть проблемы с безопасностью. Если можете, используйте токен, сгенерированный паспортом, чтобы убедиться, что пользователь является администратором.
Надеюсь, я ясно изложил свое объяснение, и вы поняли идею. :)
Могу я узнать, как и где вы храните свой токен доступа? И если пользователь передает токен доступа, оттуда вы можете получить пользовательские области (например, admin, другие роли).