В настоящее время я использую «lucadegasperi/oauth2-server-laravel».oauth2 получить токен доступа через db по предоставленному идентификатору/секретарю клиента для доверенного стороннего клиента
Я создаю конечную точку api для стороннего доверенного клиента и используя грант client_credentials.
Теперь дело в том, что токены доступа, как правило, истекли, поэтому вместо того, чтобы предоставить стороннему пользователю токен доступа, я просто поставлю им идентификатор/секрет клиента.
на моей стороне я бы сделать следующее, когда они делают локон запрос ...
SELECT a.id,
expire_time
FROM oauth_clients as c
left join oauth_sessions as s on s.client_id = c.id
left join oauth_access_tokens as a on a.session_id = s.id
where c.id = 'asfasasf'
and c.secret = 'asfasfasfasf'
order by s.id desc
limit 1;
... Вышеприведенные довольно много проверяет, есть ли маркер доступа и истекает время, связанные с идентификатором клиента/секрет. Я бы просто создал новый, если он не существовал или он истек. Затем пара линий вниз, сделайте завиток на моей стороне до конечной точки, с которой они были после, с указанным access_token на моей стороне, не беспокоясь об этом.
Я протестировал его, и он работает, но разве это изворотливое/плохое?
tldr;
- третий клиент сторона - переходит в/API/конечной точки с идентификатором клиента/секретный
- моей стороне сервера (проверяет маркер доступа в БД, связанной с идентификатором клиента/секретный)
- генерирует, если не существует или истек срок использования ...
- третья сторона клиента конечная точка апи продолжает использовать дб выбранный маркер доступа
- работы
это плохой поток?
А я вижу. Я никогда не думал, что токен доступа в db был плохим, так как он был в значительной степени подобен авторам. Это просто для одного стороннего доверенного приложения. Могли бы вы предложить более подходящий подход? –
О, просто подумал, что я бы сказал, что токен доступа действительно восстанавливается на нашей стороне. Предполагается, что это однопользовательское приложение api для одного пользователя. Надеюсь, это изменит ситуацию. –
Извините, последний вопрос. Будет ли лучше, чтобы клиент просто скрутил токен доступа, а затем использовал токен доступа в запросе на завивание сразу после первого? Это означает, что доверенный клиент будет генерировать новый токен доступа для каждого запроса. –