Введение / История вопроса
Я хочу включить аутентификацию токена для нескольких микроуслуг и пользователей. И приложения, и пользователи являются $user
объектами.
Мне нужно иметь возможность один раз пройти аутентификацию (следовательно, токен) с использованием сервера аутентификации на поддомене. Затем мне нужно иметь возможность передавать токен, которым может управлять (отзывать / обновлять что угодно) сервер Auth.
Микросервисы основаны на Laravel, поэтому использование Airlock имеет смысл. Airlock легко генерирует токены, используя:
$token = $user->createToken(now())
Однако я не вижу способа вручную проверить действительность этих токенов ... Поэтому я предположил, что они доступны в базе данных.
Шлюз предлагает, чтобы токен был возвращен следующим образом:
Это создает токен, как и ожидалось. Насколько я понимаю, это публичный токен. Он не соответствует токену в таблице personal_access_tokens
.
Позволяет называть эти PublicToken
и PrivateToken
.
Частный токен фактически находится в:
$token->accessToken->token
Я хочу иметь возможность вручную переключаться между PublicToken. Я предполагаю, что Airlock обеспечивает некоторую безопасность здесь ... и я хочу вызвать эти безопасные методы, необходимые для проверки PublicToken против PrivateToken.
Пожалуйста, не говорите "он находится в промежуточном программном обеспечении" ... Дело в том, что я иметь несколько микросервисов и пользовательских типов, совместно использующих базу данных. У меня есть аутентификационный сервер, который в конечном итоге будет работать на защищенной архитектуре, и некоторые другие микросервисы не будут ... по сути, мне нужно выполнить аутентификацию вручную, потому что обычная функция plug and play не работает. Использование Airlock в качестве основы это здорово. Но мне нужно знать, как конвертировать между publi c и приватными токенами.
По сути, я ищу реальную версию следующего псевдокода:
if( someTranslationFunction($public_token) == $private_token ) ...
TLDR: проблема
Как мне проверить $token->plainText
значение по $token
вручную?