Как пройти аутентификацию с помощью JWT и получить пользовательский объект (API в другом проекте)?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как пройти аутентификацию с помощью JWT и получить пользовательский объект (API в другом проекте)?

Сообщение Anonymous »

У меня есть два проекта Symfony 7.1: один предоставляет API (названный «ядро» — использует API Platform v4 и JWT Lexik Bundle), другой — веб-интерфейс для доступа к данным (названный «панель мониторинга»). Пользователи входят в панель управления, которая запрашивает у ядра веб-токен Json (JWT) через HTTP-запрос.
Я понял, что JWT Lexik Bundle был нацелен на участие в проекте, который предоставляет API (ядро, в моем случае). Однако я изо всех сил пытаюсь понять, есть ли что-то, что я могу иметь на стороне клиента (в моем случае, панель мониторинга), что помогает получить JWT и преобразовать его в объект UserInterface, содержащий роли и т. д.
Возможно ли это в проекте Symfony, или мне следует вручную получить роли через другой вызов API? Поможет ли использование пакета Lexik с обеих сторон?
Изменить:
Я добился некоторого прогресса, установив Пакет Lexik в обоих приложениях и изменение /config/packages/lexik_jwt_authentication.yaml следующим образом:

Код: Выделить всё

lexik_jwt_authentication:
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'

token_extractors:
cookie:
enabled: true
name: 'jwt'
authorization_header:
enabled: false
Когда я затем вручную аутентифицирую свой API и получаю JWT, я устанавливаю его как безопасный файл cookie. Пакет Lexik затем может получить этот файл cookie благодаря приведенной выше конфигурации, и я могу использовать различные функции Symfony, чтобы разрешить/запретить доступ по роли.
Похоже, что это может быть так. более простой способ, но на данный момент он работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nt-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»